博主是菜逼,欢迎大家指正。
指定位的读取:例如:10001010读取第5位的值(从右往左)首先需要一个标志值1;1<<4;变成10000在 将10000逻辑与上10011010 1001101000010000逻辑与的结果就是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中情况;如果写入的值是1int a = 10001111;int b = 1;b =(b << 4);a|=b;如果写入的值是0
int a = 10001111;int b = 1;b =(b << 4);a&=~b;