嵌入式基础之01:位操作之指定位值读取与写入

2019-07-13 01:47发布

博主是菜逼,欢迎大家指正。
指定位的读取:例如: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;