[英]Bit Testing.Counting the bits
為什么打印47(00101111)的第6位為1。從右邊開始,從1開始計數?
#include <stdio.h>
#include <stdlib.h>
int main()
{
int mask1,mask2;
//bit testing;
mask1=1<<3;
mask2=1<<6;
if(47&mask1!=0)
printf("\n bit number 3 is 1");
else
printf("\n bit number 3 is 0");
if(47&mask2!=0)
printf("\n bit number 6 is 1");
else
printf("\n bit number 6 is 0");
return 0;
}
按位AND運算符&
優先級低於不等式運算符!=
。 所以這:
47&mask1!=0
是相同的:
47&(mask1!=0)
如下添加括號:
(47&mask1)!=0
您將獲得預期的結果。 確保對mask2
進行相同的檢查。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.