问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言之中的位运算符是怎么运算的呢?

发布网友 发布时间:2022-04-23 04:06

我来回答

2个回答

热心网友 时间:2023-10-09 19:12

C语言提供了表12—1所列出的6种位运算符以及表12-2所列出的5种扩展运算符。
表12-1








~
按位求反

<<
左移

>>
右移
&
按位与
^
按位异或
|
按位或
表12-2














<<=
a<<=2
a=a<<2
>>=
b>>=1
b=b>>1
&=
a&=b
a=a&b
^=
a^=b
a=a^b
|=
a|=b
a=a|b
【说明】
位运算符中,只有“反求”(~)是单目运算符,即要求运算符两侧各有一个运算量,其余均为双目运算符。
运算的运算对象只能是整形或字符型数据,不能是其他类型的数据,在VC
6.0中整形数据占4个字节,字符型数据占1个字节。
参与运算时,操作数都必须首先转换成二进制形式,然后再执行相应的按位运算。
各双目运算符与赋值运算符结合可以组成扩展的赋值运算符,见表12-2.
12.2
位运算符详解
12.2.1
按位与运算
按位与运算“&”的运算格式:
操作数1&操作数2
【说明】
其中“操作数1”和操作数“2”必须是整型或字符型数据。
按位与运算规则是:当参加运算的2个二进制数的对应位都为1,则该位的结果为1,否则为0,即0&0=0,0&1=0,1&0=0,1&1=1。
【例如】
4&5的运算如下:
00000100
(4)
(&)
00000101
(5)
00000100
(4)
因此,4&5的值为4。
可以利用按位与运算来实现一些特定的功能,下面介绍几种常见的功能。
清零
如果想将一个数的全部二进制置为零,只要找一个二进制数,其中个个位要符合以下条件:原来的数中为1的位,新数中相应的位为0。然后使二者进行按位与运算即可达到清零的目的。
【例如】
原有数为171,其二进制形式为10101011,另找一个数,设它为00010100,它符合以上条件,即在原数为1的位置上,它的位值均为0。将两个数进行&运算:
10101011
(&)
00010100
00000000
当然也可以不用00010100这个数而用其他数(如01000100)也可以,只要符合上述条件即可。任何一个数与“0”按位于之后的结果为0。
娶一个数中某些指定位
【例如】
有一个两字节的短整型数x,想要取其中的低字节,只要将x与八进制数(377)8按位于即可。如图12-1所示,经过运算“z=x&y”后z只保留x的低字节,高字节为0.
x
00
10
11
00
10
10
11
00
y
00
00
00
00
11
11
11
11
z
00
00
00
00
10
10
11
00
图12-1
取x的低八位数
x
00
10
11
00
10
10
11
00
y
11
11
11
11
00
00
00
00
Z
00
10
11
00
00
00
00
00
图12-2
取x的高8位
如果想取两个字节中的高字节,如图12-2所示只需进行运算z
=
x
&(177400)8。
保留一个数的某些位
要想将哪一位保留下来,就与一个数进行&运算,此数在该位取1。
【例如】
有一数01110100,想把其中左面第1、3、5位保留下来,可以这样运算:
01110100
(十进制数116)
(&)
10101010
(十进制数170)
00100000
(十进制数32)

热心网友 时间:2023-10-09 19:12

int
a
=
0x0f;
a
=
a
|
0x10;
对a进行或运算,结果为0x8f
.
位运算有几种:
或,与,异或
|
,&
,^
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
说课包括哪些方面 说课内容包括()。 如何在手机百度上删除对话记录? 结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 大华威视录像机忘记密码,登录界面和网页登录也没有找回密码,主板上没有找到J4字样,怎么找回? C语言的逻辑运算和按位运算怎么区分? 大华硬盘录像机默认密码是多少? c语言中位运算有那几种?原理分别是什么? 大华硬盘录像机账户锁定怎么办 c语言的按位运算符怎么操作!? C语言中“按位运算符”是什么意思? 大华硬盘录像机管理员密码忘记了怎么办 大华硬盘录像机密码忘了,怎么才能恢复出厂设置? EXCEL如何批量删除间隔行(列)? excel怎么批量删除 大华硬盘录像机忘记密码 怎么办 excel表格里的分隔符如何删除? 大华硬盘录像机密码忘了,怎么才能恢复出厂设置啊??? 在EXCEL中,怎么批量去除特殊符号啊? 大华硬盘录像机密码忘记了怎么办 大华硬盘录像机忘记密码,想要恢复出厂设置 大华硬盘录像机密码忘了,怎么才能恢复出厂设置 excel里面,如何批量删除空格及空格后面的数值? excel表格怎么删除多行间隔数据 你好 大华硬盘录像机的账户现在已经锁定 而且忘记密码了 怎么办? C语言 位运算 大华硬盘录像机登陆密码是什么? C语言中的位运算是怎样的 新浪微博怎么订阅别人,怎么取消订阅 大华硬盘录像机DH/DVR0804LE-A忘记了密码。怎么办 如何取消微博订阅 C语言中按位与(&)运算符是什么意思 我想取消微博续订 但是我的订阅里没有取消订阅这个选项 我该怎么取消... c语言位运算是什么? 微博里订阅了的消息该怎么退订? 最新版新浪微博如何取消对某人微博的订阅? C语言中按位或,与,非是怎么用的,怎么运算? C语言中“按位运算”的应用都有哪些 微博如何取消订阅消息 C语言按位与怎么运算? C语言位运算题目 微博现在该怎么取消自动订阅 个人中心最下面找不到 C语言中按位与(&)运算符是什么意思? 如何取消微博的自动续费?为什么苹果手机点开id以后没有订阅管理这个选项...