【问题标题】:DCPU-16 Bitwise ShiftingDCPU-16 位移位
【发布时间】:2012-07-25 18:35:19
【问题描述】:

我正在努力学习 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)

我所做的只是向左移动,所以它不应该在每次移动时简单地翻倍。在我的代码中,您可以看到我有最后一个班次将注册表 B 变为 16,但是当运行 B 时,结果为 10,这是为什么。

【问题讨论】:

  • 您确定没有意外以十六进制显示注册表值吗? :)
  • 我希望我能回答所有代码都在原始帖子中并且注册窗口显示 0x0010 所以我很确定这是十六进制不确定,但我不确定是否有任何其他方式查看它

标签: binary bit-manipulation bit-shift dcpu-16


【解决方案1】:

注册窗口显示 0x0010...

你得到了正确的答案,你只是在hexadecimal查看它。

0x 开头的数字是表示十六进制数字的标准方式;所以数字0x0010 是真正的数字 1016(“以十六为底的一零”),在十进制中,是数字十六。

【讨论】:

  • 但是不应该是0x0016
  • @Bevilacqua - 不,0x16 将是十进制表示法中的 0d22。 0x10 = 0d16 = 0o20(八进制)= 0b10000(二进制);它们都是同一个数字。
猜你喜欢
  • 1970-01-01
  • 2012-04-20
  • 2015-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-07
  • 2011-01-30
  • 1970-01-01
相关资源
最近更新 更多