1

私はDCPUを学ぼうとしています。

;Set b to 1
SET B,1 ;00001 (1)
SHL B,1 ;00010 (2)
SHL B,1 ;00100 (4)
SHL B,1 ;01000 (8)
SHL B,1 ;10000 (16)

私がやっているのは左にシフトすることだけなので、シフトごとに単純に2倍になるべきではありません。私のコードでは、最後のシフトでレジストリ B が 16 になっていることがわかりますが、B を実行すると最終的に 10 になるのはなぜですか。

4

1 に答える 1

7

レジスタ ウィンドウには 0x0010 と表示されます...

あなたは正しい答えを得ています.16進数で表示しているだけです.

で始まる数字0xは、16 進数を表す標準的な方法です。したがって、数値0x0010は実際には数値 10 16 (「基数 16 の 1-ゼロ」)であり、10 進数では数値 16 です。

于 2012-07-25T20:16:25.877 に答える