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