首页 > 试题

resulting

更新时间:2022-12-07 03:28:53 阅读: 评论:0

初中考试科目及时间-杀人雾


2022年12月7日发(作者:南桥北桥)

c语⾔异或_C语⾔位逻辑运算符的四种逻辑:取反,并,或,

异或

4个按位逻辑运算符都⽤于整型数据,包括char。之所以叫作按位(bitwi)运算,是因为这些操作都是针对每⼀个位进⾏,不影响它左右两

边的位。不要把这些运算符与常规的逻辑运算符(&&、||和!)混淆,常规的逻辑运算符操作的是整个值。

1.⼆进制反码或按位取反:~

⼀元运算符~把1变为0,把0变为1。如下例⼦所⽰:

~(10011010)//expression(01100101)//resultingvalue

假设val的类型是unsignedchar,已被赋值为2。在⼆进制中,00000010表⽰2。那么,~val的值是11111101,即253。注意,该运

算符不会改变val的值,就像3*val不会改变val的值⼀样,val仍然是2。但是,该运算符确实创建了⼀个可以使⽤或赋值的新值:

newval=~val;printf("%d",~val);

如果要把val的值改为~val,使⽤下⾯这条语句:

val=~val;

2.按位与:&

⼆元运算符&通过逐位⽐较两个运算对象,⽣成⼀个新值。对于每个位,只有两个运算对象中相应的位都为1时,结果才为1(从真/假⽅⾯

看,只有当两个位都为真时,结果才为真)。因此,对下⾯的表达式求值:

(10010011)&(00111101)//expression

evaluatestothefollowingvalue:

(00010001)//resultingvalue

C有⼀个按位与和赋值结合的运算符:&=。下⾯两条语句产⽣的最终结果相同:

val&=0377;val=val&0377;

3.按位或:|

⼆元运算符|,通过逐位⽐较两个运算对象,⽣成⼀个新值。对于每个位,如果两个运算对象中相应的位为1,结果就为1(从真/假⽅⾯看,

如果两个运算对象中相应的⼀个位为真或两个位都为真,那么结果为真)。因此,对下⾯的表达式求值:

(10010011)|(00111101)//expression

除了编号为6的位,这两个运算对象的其他位⾄少有⼀个位为1,得:

(10111111)//resultingvalue

C有⼀个按位或和赋值结合的运算符:|=。下⾯两条语句产⽣的最终作⽤相同:

val|=0377;val=val|0377;

4.按位异或:^

⼆元运算符逐位⽐较两个运算对象。对于每个位,如果两个运算对象中相应的位⼀个为1(但不是两个为1),结果为1(从真/假⽅⾯看,如果

两个运算对象中相应的⼀个位为真且不是两个为同为1,那么结果为真)。因此,对下⾯表达式求值:

(10010011)^(00111101)//expression

编号为0的位都是1,所以结果为0,得:

(10101110)//resultingvalue

C有⼀个按位异或和赋值结合的运算符:^=。下⾯两条语句产⽣的最终作⽤相同:

val^=0377;val=val^0377;

本文发布于:2022-12-07 03:28:53,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/88/57096.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:脚著谢公屐
下一篇:adapted
标签:resulting
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图