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

C的右移运算符什么用

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

我来回答

5个回答

懂视网 时间:2022-03-30 10:25

右移运算符,移位运算符的一种:程序设计中,位操作运算符的一种。在c加加中,移位运算符有双目移位运算符:左移和右移。移位运算符组成的表达式也属于算术表达式,其值为算术值。左移运算是将一个二进制位的操作数按指定移动的位数向左移位,移出位被丢弃,右边的空位一律补0。

       右移运算是将一个二进制位的操作数按指定移动的位数向右移动,移出位被丢弃,左边移出的空位或者一律补0,或者补符号位,这由不同的机器而定。在使用补码作为机器数的机器中,正数的符号位为0,负数的符号位为1。

  运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”。在vb2005中运算符大致可以分为5种类型:算术运算符、连接运算符、关系运算符、赋值运算符和逻辑运算符。C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。

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

右移运算符“>>”是双目运算符。其功能是把“>> ”左边的运算数的各二进位全部右移若干位,“>>”右边的数指定移动的位数。
例如:
设 a=15,
a>>2
表示把000001111右移为00000011(十进制3)。
应该说明的是,对于有符号数,在右移时,符号位将随同移动。当为正数时,最高位补0,而为负数时,符号位为1,最高位是补0或是补1 取决于编译系统的规定。Turbo C和很多系统规定为补1。

热心网友 时间:2022-03-30 08:51

i >> 1

C 的右移运算就是二进制 右移一位,相当于被2整除

移位运算速度 比 整除 快

热心网友 时间:2022-03-30 10:25

int a;
a>>2;
a右移两位

热心网友 时间:2022-03-30 12: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。其他的可以依次类推!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
急,小弟该学哪种街舞呢? 少儿街舞popping好还是breaking好 急!!!我适合学breaking还是popping?现在身高165,体重115 。 我该学什么街舞舞种?适合我的 卧龙生的武侠小说,当年各种被撕页,省略号让人记忆犹新 电信话费用了700多,可是没欠费,这是什么情况? 电信交网费送手机说是最低消费69除了这69外还会再乱扣费吗谁用过 我的GPRS/3G数据流量套餐费是20元,小计22元是什么意思?有没有知道... 为什么我都没怎么用,并且没打电话,只是用QQ浏览器浏览网页就欠费了... 劳动关系确立证明有哪些 电脑上如何双面打印 电脑打印双面怎么设置 电脑怎么打印双面 电脑怎样设置双面打印 电脑打印双面怎么打印 电脑上双面打印怎么打 电脑上怎么设置打印双面 电脑如何设置双面打印 电脑怎么设置打印机双面打印怎么设置 电脑打印怎么设置双面打印 电脑上怎么设置正反面打印 电脑上如何设置打印双面 在电脑上怎么双面打印 打印机怎么设置正反面打印 高德地图vr导航,用carplay连接中控屏,怎么没有实景 高德AR实景导航,这会成为主流吗? 移位运算怎么计算 右移运算符的基本信息 华为p30怎么录屏幕视频 妙芸堂医用冷敷贴系列产品怎么样? vivox5手机淘宝如何查看我的足迹? vivoS9丢失了如何“定位”找回? vivo手机空间不足怎么办? vivo手机被偷了如何找到手机所在位置? vivo手机丢了怎么找到手机所在位置 vivo手机丢了 ,如何寻回 怎么把自己的店铺位置上传到地图上 高德地图怎么添加拍好的照片 看到周围的店铺都能在高德地图附近中找到,也想,把自己的店铺上传,但不懂方法求指教 高德地图我没上传位置店铺照片,为什么上传了?一般什么人上传的?别人谁上传的? 在高德地图上我已注册了自己的店铺,但如何上传菜单? 高德地图上的商家图片如何修改 右移运算符的作用 Java中右移运算 oppo手机自动播放音乐怎么关闭 铁血丹心全本 手机自动播报短信如何关闭 手机自动播放广告机如何关闭? Ikf耳机怎么把自动播放关了 怎么关闭windowsXP自动播放功能??????