判断二进制数某位是0还是1,以及修改二进制数某位
#include <stdio.h>
int main()
{
int n = 9;
//判断n二进制数从右向左数第4位是0还是1,若为1,1&1得1,若为0,0&1得0;
if((n>>(3))&1) printf("1\n");
else printf("0\n");
//修改n二进制数从右向左数第3位为1
int res = n|(1<<2);
printf("%d\n",res);
//修改n二进制数从右向左数第4位为0
int r2 = n&~(1<<3);
printf("%d\n",r2);
return 0;
}
输出:
1
13
1