2進数・16進数のはなし
2進数・16進数とは
2進数はバイナリ[Binary]、16進数はヘキサデシマル[Hexadecimal]と呼ばれ、コンピューターの数値を示したり、指定したりするのに必要な数値です。通常の10進数デシマル[Decimal]との比較を書いてみます。
2進数
2進数は 0 と1だけで表現され、マイコンのポートの状態とよく比較されその桁の1つをBit(ビット)と表現されます。まさにデジタル式数値の基本です。電流・電圧で言えば OFF = 0 と ON = 1 と置き換えて考えられます。
桁を考えるといちばん小さい1の桁、次は2の桁、4の桁と桁の示す数値は2のn乗の値になっています。表記としては 16 = 00010000B などと末部にBinary の Bをつけて表現するのが一般的です。
2進数を学ぶにはこの1から256までの桁の数値を、イチ、ニー、ヨン、パー、イチロク、サンニー、ロクヨン、イチニッパ、ニゴロと暗記しておくと10進数との変換に便利です。
しかしながらこのまままですと桁が多くなって記載しにくくなってしまいますので、4ビットをまとめて ニブル(nibble) あるいは、8ビットをまとめて バイト(Byte)として記載される様になりました。4ビットのニブル単位で表現されるのが 16進数で、 0,1,2,3,4....9,A,B,C,D,E,F と数字の次はアルファベットの AからFまで使って16までの数字を表現します。
16進数
通常データーを示すのに初期のマイコンのビット数の8ビットから、もっぱら16進数の2桁で(例: 0= 00,255 = FF ) 8ビットを表すようになりました。かつてマイコンの初期には雑誌のプログラムにはヘキサダンプと呼ばれ、この16進数2桁を延々と並べて記載され、これを16進数キーボードで直接機械語として打ち込んだ時代もありました。ヘキサ数値を示すために、 00H と末尾に H をつける場合や &h 00 と前に書く場合もあります。10進数の変換には各桁を10進数になおし、上位の桁を16倍して加えます。
例として 3CH では 3x16 + 12 =60 と計算されます。
ソフト的には
現在コンピューターのバス幅は8ビットだけでなく、32ビットや64ビットにもなっています。バス幅が大きくなると一度に処理する数値が増えますので、クロックを上げるのに比べて性能向上しやすいですが、ハード構成が複雑で高価になります。64ビットCPUになってもデーターの表現方法は16進数で桁が増えるだけなので、基本の16進数を理解しておくことは大事だと考えます。
| 固定リンク
「基本を学ぶ」カテゴリの記事
- 最新トラ技と年末年始に読みたい本 3点(2020.12.30)
- LEDを光らせるはなし(2020.05.01)
- 英語のはなし(2014.12.17)
- トランジスターとフェルミ準位のはなし(2012.07.27)
- フェルミ準位のはなし(2012.07.25)
コメント
>...16進数はヘキサーデミカル[Hexademical]と呼ばれ...
「... ヘキサデシマル[Hexadecimal] ...」の誤記かと思います。
それはさておき、毎回のお話楽しみにしております。
この機会にお礼もうしあげます。
投稿: | 2011年3月 9日 (水) 16時25分
本当だ、読み違えたようです。
コメントありがとうございます。
投稿: SUDOTECK | 2011年3月 9日 (水) 22時10分