新しく発言する  EXIT  インデックスへ

16進法


  16進法 マメ 2008/03/27 23:16:08 
  !10進レジスター:16進レジスターのよう... SECOND 2008/03/28 01:51:15 
  │└!エピソード SECOND 2008/03/28 18:04:07 
  │ └エピソード2 SECOND 2008/03/28 19:17:59 
Re: !エピソード  返事を書く  ノートメニュー
SECOND <jjqdmekgpt> 2008/03/28 19:17:59
エピソード2

コンピュータ−・レジスター上での
2進数、4進数、8進、16進、…(2^N)進数は、同じものです。

 2進数:1011011101111010

    :10 11 01 11 01 11 10 10
 4進数: 2  3  1  3  1  3  2  2

    :1 011 011 101 111 010
 8進数:1   3   3   5   7   2

    :1011 0111 0111 1010
16進数:   B    7    7    A

2進レジスターしか無い、コンピュータ−・レジスターを、
読む人の側で、区切れを何処へ置くかの違いです。

コンピュータ−・レジスター上での10進数は、区切れの調整だけでは、できませんので、
BCD(Binary Coded Decimal) にします。

16進と同じ4ビット区切りですが、各区間は、0Ah(10d)以上の数を、使わないようにして、
0Ah(10d)以上は、上の4ビット区切りに、桁上がり(Carry)とします。

BCD :0001 1001 1000 0111
10進数:   1    9    8    7

これを、コンピュータ−・レジスターで、10進 →16進(2進)へ変換するには、
2進レジスター:BCDレジスター のように並べて左シフト(10倍)するのが便利です。

とくに小さいコンピューター(マイコン等)は、BCD割り算の出来ないものが殆んどなので、
右シフト(10で割る)の方は、不利で、2進加算だけで出来る左シフト(10倍)の方が有利
となります。

(1)BCDの10倍は、計算しないで、4ビットの左シフト。
(2)2進レジスターは、その4ビットを、右から受取って、左シフト(10倍)する。…2進演算で。

(1)(2)を繰返す。

※細かい事をいうと、(2)は、既存を10倍してから、BCDからの4ビットを加算して受取る。
  │  └!2進化10進数(BCD、Binary-codeddecimal)... 山中和義 2008/03/30 12:52:58 
  簡単なのは組込み関数のBSTR$を使うことです... 荒田浩二 2008/03/28 11:39:51  (修正1回)

 インデックスへ  EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。