假设我有一个整数 int a
在 C++ 中,如 int
使用 4 字节(32 位)的内存,所有位将被 1
占用的或0
的。所以,我想翻转每一位的值。也就是说,每一位中的任何地方都有 1
将其转换为 0
和 0
至 1
.
有没有简单的方法来解决这个问题?
编辑:我也想玩 bool 代数。也就是说,如果我可以执行基本的 bool 运算,如加法、减法等。
最佳答案
您正在寻找二进制非运算符 (~)。
所以
int a = 0x04;
int b = ~a;
b
的值为 1111 1111 1111 1011 而 a
的值为 0000 0000 0000 0100。
关于c++:如何翻转int中每个位的二进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40169322/