DCPU-16按位移位

Bev*_*qua 1 binary bit-manipulation bit-shift dcpu-16

我正在努力学习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)
Run Code Online (Sandbox Code Playgroud)

我正在做的就是向左移动,所以不应该只是每个班次加倍.在我的代码中,您可以看到我有最后一个班次将注册表B转换为16但是当运行B结束为10时为什么会这样.

Blu*_*eft 6

寄存器窗口显示0x0010 ...

你得到了正确的答案,你只是用十六进制查看它.

以数字开头0x是表示十六进制数的标准方式; 因此,数字0x0010实际上是数字10 16 ("十六进制中的一个零"),十进制数字是十六.

  • @Bevilacqua - 不,0x16 将是十进制表示法的 0d22。0x10 = 0d16 = 0o20(八进制)= 0b10000(二进制);他们都是同一个数字。 (2认同)