我最近在这个站点上看到了一条关于在C中对整数使用逻辑运算符的帖子,但是,我并不真正理解它是如何工作的,所以在这里我提供了两个例子,我希望有人能为它们提供一个详细的解释:
int result = 1000 & 255int result = 1000 || 255发布于 2022-06-20 16:45:25
小数1000是二进制11 1110 1000。小数点255是二进制111111。首先,它们被转换为signed int,通常32位宽。
取其中的&在操作数的两个位设置的所有位置设置位:
0000 0000 0000 0000 0000 0011 1110 1000
0000 0000 0000 0000 0000 0000 1111 1111
& ---------------------------------------
0000 0000 0000 0000 0000 0000 1110 1000这是小数点232。取|将在至少设置一位的所有位置设置位,即产生二进制11 1111 1111,即十进制1023。如果采用^,将在精确地设置其中一个位的所有位置设置位,即
0000 0000 0000 0000 0000 0011 1110 1000
0000 0000 0000 0000 0000 0000 1111 1111
^ ---------------------------------------
0000 0000 0000 0000 0000 0011 0001 0111&&不是二进制操作。它只是返回1当且仅当两个操作数是非零的.||返回1当且仅当至少一个操作数是非零的.在其他情况下,它们分别返回0。
https://stackoverflow.com/questions/72690260
复制相似问题