###前提・実現したいこと
16進数と、2進数の変換について教えてください。
63 60 20 19 fc c7 01 18 70 4a 20 5b 81 ac 08 c5 6a ca 24 00
という16進数を2進数にして、各バイトのLSB(Least significant bit:最下位ビット)を左にして1本のビット列にした結果が、次のようになっています。
11000110 00011111 11110011 00000011 00000000 00100010 00000110 01000111 11111100 00100001 00000001 00000000 01100100 00010100 10110001 10000010 10001100 01111111 11100001 00010100 10000110 00100001 10010110 11000000 01001100 10010000 00010111 00000010 01101100 11000111 11111100 00101010 11011100 01111010 11011100 00001110 01011010 01110001 11001010 01000000 00000000
この変換ルールを読み解きたいので、お知恵をお貸しください。
###試したこと
前から考えると、「LSBを左にする」を左右を反転すると読むと
63→1100011-LSBを左にする→1100011 60→1100000-LSBを左にする→0000011 20→100000-LSBを左にする→000001
です。見やすいように区切りを8桁ごとにいれると、次のようになります。
###発生している問題
11000110 00001100 0001
この3つの16進数を2進数に変換しただけで、もう数字が違っています。
###試したこと
次に、「LSBを左にする」をLSBのみを左に移動すると読むと
63→1100011-LSBを左にする→1110001 60→1100000-LSBを左にする→0110000 20→100000-LSBを左にする→010000
です。見やすいように区切りを8桁ごとにいれると、次のようになります。
###発生している問題
11100010 11000001 0000
これはぜんぜん違うみたいです。
どのように考えたら、上の結果を導けるのか、ご指導いただければ幸いです。
この数字列は、
http://blog.livedoor.jp/cperl/archives/22023950.html
を参考にしています。
Windows10, 64bit, Visual Studio 2017 Communityです。
回答2件
あなたの回答
tips
プレビュー