C 语言中是否有一种按位运算或逻辑运算可以对整数的所有位执行并返回 1 或 0
例如。包含 0b10101010 的整数将返回 1,0b00000000 将返回 0。
最佳答案
如果对一个单词的所有位进行与运算,则只有“全一”会产生结果 1。在您的示例中,0b10101010 将产生零而不是一。
如果您对所有位进行“或”运算,任何非零值都将得到 1。
因此,以下内容对于任何整数类型都是类型安全的,无需假设补码:
int i = somevalue;
int and_bits = ~i == 0 ;
int or_bits = i != 0 ;
或者也许更直观:
int and_bits = i == ~0 ;
关于c - 有没有办法对 c 中整数的所有位进行 AND 运算并返回简单的 1 或 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12359951/