c语言移位运算符C语言按位左移运算规则

c语言移位运算符  时间:2021-06-20  阅读:()

关于C语言的左移(<<)和右移(>>)

左移比较简单,右边补0(移几位就补几个0),左边丢掉。

右移比较复杂,右移分两种: (1)逻辑右移,左边补0(移几位补几位),右边移出去的丢掉。

(2)算术右移,左边补最高位(即原来的最高位是0就补0,是1就补1,因为最高位代表符号,这样可以保证负数不会变成正数),右边丢掉。

c语言,移位运算符>>

右移对符号位的处理和左移不同,对于有符号整数来说,比如int类型,右移会保持符号位不变,例如:10100110 >>5(假设字长为8位),则得到的是 11111101。

总之,在C中,左移是逻辑/算术左移(两者完全相同),右移是算术右移,会保持符号位不变.实际应用中可以根据情况用左/右移做快速的乘/除运算,这样会比循环效率高很多. 所以,short a=0xf245,即a=1111001001000101,经过右移后,b=a>>8;b=1111111111110010,即b=0xfff2。

注意是有符号右移为算术右移!!!

C语言按位左移运算规则

C语言中按位左移的运算符为<<,其规则如下: 对于操作a<<n, 1 按照二进制值每位向高位(书写上是向左)移动n位; 2 最高位(最左边的)n位舍去; 3 最低位(最右边)填加n个0. 简单起见,用char型举例如下: 例一 0x12 << 3 => B00010010 << 3 => B10010 000(这里最高位的三个0被舍去,其它依次左移,最低位补三个0) => 0x90 即0x12 << 3 = 0x90 例二 0x9E << 2 => B10011110 << 2 => B01111000 (最高位10舍去,最低位补两个0)=> 0x78 可以编写如下程序验证: #include?<stdio.h> void?check(char?a,?int?n) { ????printf("0x%hhx?<<?%d?=?0x%hhx ",?a,?n,?a<<n); } int?main() { ????check(0x12,?3); ????check(0x9e,?2); ????return?0; }其运行结果为 0x12?<<?3?=?0x90 0x9e?<<?2?=?0x78可以看到与我们计算结果是相符的。

totyun:香港cn2 vps,5折优惠,$6/月,10Mbps带宽,不限流量,2G内存/2核/20g+50g

totyun,新公司,主要运作香港vps、日本vps业务,接入cn2网络,不限制流量!VPS基于KVM虚拟,采用系统盘和数据盘分离,从4G内存开始支持Windows系统...大家注意下,网络分“Premium China”、“Global”,由于站长尚未测试,所以也还不清楚情况,有喜欢吃螃蟹的尝试过不妨告诉下站长。官方网站:https://totyun.com一次性5折优惠码:X4QTYVNB3P...

cloudcone:特价便宜VPS补货通知贴,SAS或SSD低价有磁盘阵列,SAS或SSD raid10 硬盘

cloudcone经常性有特价促销VPS放出来,每次的数量都是相当有限的,为了方便、及时帮助大家,主机测评这里就做这个cloudcone特价VPS补货专题吧,以后每次放货我会在这里更新一下日期,方便大家秒杀!官方网站:https://cloudcone.com/预交费模式,需要充值之后方可使用,系统自动扣费!信用卡、PayPal、支付宝,均可付款购买!为什么说cloudcone值得买?cloudc...

Digital-VM:服务器,$80/月;挪威/丹麦英国/Digital-VM:日本/新加坡/digital-vm:日本VPS仅$2.4/月

digital-vm怎么样?digital-vm在今年1月份就新增了日本、新加坡独立服务器业务,但是不知为何,期间终止了销售日本服务器和新加坡服务器,今天无意中在webhostingtalk论坛看到Digital-VM在发日本和新加坡独立服务器销售信息。服务器硬件是 Supermicro、采用最新一代 Intel CPU、DDR4 RAM 和 Enterprise Samsung SSD内存,默认...

c语言移位运算符为你推荐
机房360电脑上的杀毒软件被360覆盖了,怎么找回?无处不在的意思,幸福无处不在,最适合才是最好是什么意思webservice框架用JAVA作APP后端,一般用什么web service?用什么restful框架cursorlocation在ENVI中双击遥感图像出来个CURSOR LOCATION/value对话框。下面有个LL : 31?6'21.84"N, 117?9'11.78"Eza是哪个国家的奥洛菲是哪个国家的特斯拉model3降价特斯拉官网为何会被挤崩?防火墙技术应用防火墙的应用与研究论文怎么查微信注册时间怎么查看自己的微信号用了多久云家政网腾讯网的网址是多少?acceptchangeswinform 怎样把DataTable 中的值插入到数据库中
100m虚拟主机 山东vps 187邮箱 godaddy主机 vultr美国与日本 免备案空间 Hello图床 建站代码 大容量存储器 秒杀预告 速度云 网站卫士 qq云端 爱奇艺vip免费试用7天 太原网通测速平台 创速 国外免费网盘 新网dns web服务器 免费网站加速 更多