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

右移运算符的作用

发布网友 发布时间:2022-03-30 06:03

我来回答

2个回答

热心网友 时间:2022-03-30 07:33

&
位逻辑与
|
位逻辑或
^
位逻辑异或
-
位逻辑反
>>
右移
<<
左移
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
按位运算是对字节或字中的实际位进行检测、设置或移位,
它只适用于字符型和整数型变量以及它们的变体,
对其它数据类型不适用。
我们要注意区分位运算和逻辑运算。
1.
按位与运算按位与运算符&是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1
,否则为0。参与运算的数以补码方式出现。
例如:9&5可写算式如下:
00001001
(9的二进制补码)&00000101
(5的二进制补码) 00000001
(1的二进制补码)可见9&5=1。
按位与运算通常用来对某些位清0或保留某些位。例如把a
的高八位清
0
,保留低八位,可作
a&255
运算
(
255
的二进制数为0000000011111111)。
main(){
int
a=9,b=5,c;
c=a&b;
printf(a=%d\nb=%d\nc=%d\n,a,b,c);
}
2.
按位或运算按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。参与运算的两个数均以补码出现。
例如:9|5可写算式如下:
00001001|00000101
00001101
(十进制为13)可见9|5=13
main(){
int
a=9,b=5,c;
c=a|b;
printf(a=%d\nb=%d\nc=%d\n,a,b,c);
}
3.
按位异或运算按位异或运算符“^”是双目运算符。其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。参与运算数仍以补码出现,例如9^5可写成算式如下:
00001001^00000101
00001100
(十进制为12)
main(){
int
a=9;
a=a^15;
printf(a=%d\n,a);
}
4.
求反运算求反运算符~为单目运算符,具有右结合性。其功能是对参与运算的数的各二进位按位求反。例如~9的运算为:
~(0000000000001001)结果为:1111111111110110
5.
左移运算左移运算符“<<”是双目运算符。其功能把“<<
”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。例如:
a<<4
指把a的各二进位向左移动4位。如a=00000011(十进制3),左移4位后为00110000(十进制48)。
6.
右移运算右移运算符“>>”是双目运算符。其功能是把“>>
”左边的运算数的各二进位全部右移若干位,“>>”右边的数指定移动的位数。例如:设
a=15,a>>2 表示把000001111右移为00000011(十进制3)。应该说明的是,对于有符号数,在右移时,符号位将随同移动。当为正数时,最高位补0,而为负数时,符号位为1,最高位是补0或是补1
取决于编译系统的规定。
main(){
unsigned
a,b;
printf(input
a
number:
);
scanf(%d,&a);
b=a>>5;
b=b&15;
printf(a=%d\tb=%d\n,a,b);
}
请再看一例!
main(){
char
a='a',b='b';
int
p,c,d;
p=a;
p=(p<<8)|b;
d=p&0xff;
c=(p&0xff00)>>8;
printf(a=%d\nb=%d\nc=%d\nd=%d\n,a,b,c,d);
}
当进行按位与或时,最好使用16进制,在程序中这样表示:0x01
表示0000
0001
所以,字符类型a的最高位强制1可以这样:a=a|0x80。其他的可以依次类推!

热心网友 时间:2022-03-30 09:07

在没有溢出的前提下:
左移n位等于乘以2的n次方
右移n位等于整除2的n次方
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
早孕验血报告单怎么看 测试早孕的方法 联想电脑退货注意什么 公务员裸眼视力必须0.3吗 山东农业大学机电学院科研成果 山东农业大学机械与电子工程学院实验研究 山东农业大学机电工程学院有哪些重点实验室和研究中心? 复发性无菌性脑膜炎的诊断 电子简历自我评价 电子信息技术专业个人简历自我评价 楚留香手游9月7日更新公告 天机阁指点江山功能开放-手游资讯-安族网 高德地图上的商家图片如何修改 在高德地图上我已注册了自己的店铺,但如何上传菜单? 高德地图我没上传位置店铺照片,为什么上传了?一般什么人上传的?别人谁上传的? 看到周围的店铺都能在高德地图附近中找到,也想,把自己的店铺上传,但不懂方法求指教 高德地图怎么添加拍好的照片 怎么把自己的店铺位置上传到地图上 vivo手机丢了 ,如何寻回 vivo手机丢了怎么找到手机所在位置 vivo手机被偷了如何找到手机所在位置? vivo手机空间不足怎么办? vivoS9丢失了如何“定位”找回? vivox5手机淘宝如何查看我的足迹? C的右移运算符什么用 电脑上如何双面打印 电脑打印双面怎么设置 电脑怎么打印双面 电脑怎样设置双面打印 电脑打印双面怎么打印 电脑上双面打印怎么打 电脑上怎么设置打印双面 Java中右移运算 oppo手机自动播放音乐怎么关闭 铁血丹心全本 手机自动播报短信如何关闭 手机自动播放广告机如何关闭? Ikf耳机怎么把自动播放关了 怎么关闭windowsXP自动播放功能?????? 11款卡罗拉每次启动车辆都会自动播放收音机怎么关闭? 如何设置关电脑 自动定时开机播放和关机 怎样关闭北京现代图名汽车启动时就自动播放的收音机? 现代名图是b级车吗 如何关闭U盘自动播放? C语言中移位运算的详细解释。 平板摔了,黑屏了,怎么办? 平板电脑摔了一下花屏了怎么办? 平板电脑摔地上后触摸屏不灵了怎么办? 我的平板电脑摔过了,不能点屏幕了,该怎么办? ipad摔了一下黑屏了怎么办 平板电脑摔坏了怎么办 平板电脑在家摔黑屏了怎么在家修?