C语言移位运算符怎么用?

 我来答
鲜于运珹於幼
2019-09-13 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:26%
帮助的人:746万
展开全部
右移对符号位的处理和左移不同,对于有符号整数来说,比如int类型,右移会保持符号位不变,例如:10100110
>>5(假设字长为8位),则得到的是
11111101。
总之,在c中,左移是逻辑/算术左移(两者完全相同),右移是算术右移,会保持符号位不变.实际应用中可以根据情况用左/右移做快速的乘/除运算,这样会比循环效率高很多.
所以,short
a=0xf245,即a=1111001001000101,经过右移后,b=a>>8;b=1111111111110010,即b=0xfff2。注意是有符号右移为算术右移!!!
皮谨菅雨
2020-04-12 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:32%
帮助的人:739万
展开全部
这是c++好吧。。。。算了c和c++的移位运算符都一样
这个难道不对吗,左移就是*2啊(不越界的话)
原理就是你把1110化成二进制(000010001010110),然后每个位都向左移一位,最低位补0,次高位舍弃(最高位是符号位,不能动)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友94521de769f
2019-10-30 · TA获得超过4024个赞
知道大有可为答主
回答量:3170
采纳率:34%
帮助的人:235万
展开全部
位与
&
0
&
0 =
0
1
&
1
= 1
1
&
0 =
0
0
&
1=
0位或
|
0 |
0 =
0
1 |
1
= 1
1 |
0 = 1
0
|
1=
1位异或
^
0 ^
0
= 0
1
^
1
=
0
1
^
0
=
1
0
^
1
=
1将操作符两边的两个操作数按位对齐做运算。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式