【发布时间】:2018-03-21 01:56:32
【问题描述】:
我正在阅读“K&R 的 C 语言”。现在我正在做按位部分。我很难理解以下代码。
int mask = ~0 >> n;
我正在使用它来掩盖另一个像这样的二进制文件的左侧。 0000 1111 1010 0101 //随机数
我的问题是当我打印 var mask 时它仍然是负数 -1。假设 n 为 4。我认为移动 ~0 即 -1 将是 15 (0000 1111)。
感谢您的回答
【问题讨论】:
-
这本书享有很高的声誉,但它非常古老,在处理现代(2005 年后)C 编译器时会让你误入歧途。
-
@zwol 你推荐什么书?
-
@TheCaptain 我很遗憾地说我没有推荐新书。我自己很久以前就学过 C。
标签: c bit-manipulation