1
我所欠缺的几项编程任务之一是处理位级操作符,我希望能够正确执行此操作。位级别操作符
#include <stdio.h>
int main(void){
int x;
printf("Enter an x: ");
scanf("%x", &x);
printf("X = %d\n", x);
// Any bit in x is 1
x && printf("A bit in x is 1!\n");
// Any bit in x is 0
~x && printf("A bit in x is 0!\n");
// Least significant byte of x has a bit of 1
(x & 0xFF) && printf("A bit in least significant byte of x is 1!\n");
// Most significant byte of x has a bit of 0
int most = (x & ~(0xFF<<(sizeof(int)-1<<3)));
most && printf("A bit in the most significant byte of x is 0!\n");
return 0;
}
该分配限制了我们可以使用的内容,因此可能没有循环或条件以及许多其他限制。我对位级操作符有点困惑,所以我只是希望如果有任何错误,我可以修复它,并了解它为什么错了。谢谢。
当'&&'做同样的事情时,不允许使用'if'的意义是什么? – Nabla
该章节介绍了该操作符。我认为这是更多的使用,如果==。它看起来好吗? – WorldDominator
根据你想要的可移植性,你不应该硬编码一个字节有8位(0xFF)。 –