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

博主是菜逼,欢迎大家指正。


指定位的读取:

例如: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;







猜你喜欢

转载自blog.csdn.net/weixin_38638777/article/details/80795798