首页 > 编程知识 正文

同步置零与异步清零的区别,c语言数组初始化的三种方式

时间:2023-05-04 00:38:11 阅读:151525 作者:4156

简述:

A=~(BC); A|=(BC);

a为被修正数

b是修改后的位数

c是从第几个人开始修改的

可以读作。 a从c位开始,修正b位的a=~~(BC )。 该式将a从第c位开始的b位清零为a|=(BC ),该式将a从c位开始的b位设为公式解析:

int A=0x5a;

a=~(0x71;

将int设置为4字节

0x7: 000000000000000000000110 x 71336000000000000000000000001110~0x 71:111111111111111111111111111111111111111110 使我们请求后修改的位数为0,它和我们的操作数相位一定能把请求的位清零**a=~(0x71 )其实是a=a(~) (0x71 ) ) ** a:000000000000000000000001011010~0x 71:111111111111111111111111110001 a (() ((000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

我们再操作一次a|=(0x71 ); a=a|(0x71 )0x7: 00000000000000000001110 x 7133600000000000000000000000此时,将我们请求后要修改的位数设置为1。 这样就可以与我们的操作数相结合,使请求的位为1a:00000000000000000000000000 a|(0x 71 )。 0000000000000011110很明显,从1开始的3位数设置为1A:0x5e是根据上面的两个公式,我们可以合并得到的,被清除的地方是最好的。

全部为0的时候,我们想设定为h,h和清零的相或者

所以,如果修改后的位数超过两位数,或者不是单纯地变成1,而是随机确定的数的话

可以先清除,后放1

将显示以下代码:

` ` ` c demo _ code:# include ' stdio.h ' int main (void ) { int A=0x5a; a=~(0x70 ); //简单地将三位数转换为printf(%0x(n ),a ); a|=(0x11; //将第二位置设置为1printf('%0xn ',a ); int B=0xabcd; b=~(0xff0);//将从0到7的8位转换为printf('%0xn”,b ); b|=(0xab0 ); //在你之前的清除操作中,从0开始的这8位被清除了。 //因此,即使将ab和全部0的8位设为或,最终也不会成为abprintf('%0x(n ),b ); }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。