小编Use*_*449的帖子

公式 x & (x - 1) 如何计算?

来自黑客之乐:第二版

关闭字最右边 1 位的公式。


这里的公式看起来有点尴尬。当x小于1时,如何从1 个向量(大概是0x1111 1111)中减去某个x向量?(例如:(如示例中所示)0x0101 1000 - 0x0000 0000对我来说没有任何意义)前一个数字比第一个数字小,并且这些单词也不存储有符号向量。这是与 RISC 特定相关的东西吗?


正如本书的注释部分所指定的。粗体字母对应于x = 00000000等单词的向量。粗体字母与浅色字体 1 不同。如粗体1 = 11111111,这是一个 8 位字。


Edit2:特别感谢 Paul Hankin 找出了这里使用的非常规符号。粗体字指的是 32 位大小的字,即 [00000001],浅色字 1 指的是数字 1,如 C 中所示。

math binary assembly bit-manipulation arithmetic-expressions

7
推荐指数
2
解决办法
6867
查看次数