博主是菜逼,欢迎大家指正。
指定位的读取:
例如:10001010
读取第5位的值(从右往左)
首先需要一个标志值1;
1<<4;变成10000
在 将10000逻辑与上10011010
10011010
00010000
逻辑与的结果就是00010000 要是这个值等于1<<4 ,即10000 则说明这个值就是1
反之就是0 。
源码就是
int a = 11;
int b = 1;
b =(b << 4);
int c = 0;
c = a&b;
if(c == b)
{
printf("第5位的值是1");
}
else
{
printf("第5位的值是0");
}
往指定位写入值,并且保持其他位不变;
分2中情况;
如果写入的值是1
int a = 10001111;
int b = 1;
b =(b << 4);
a|=b;
如果写入的值是0
int a = 10001111;
int b = 1;
b =(b << 4);
a&=~b;