您现在的位置是:首页» windows系统» 移位运算为什么要移位,算术移位和运算移位

移位运算为什么要移位,算术移位和运算移位

2023-12-05 02:51:58
今天小编为大家分享Windows系统下载、Windows系统教程、windows相关应用程序的文章,希望能够帮助到大家! C语言中按位左移的运算符为

今天小编为大家分享Windows系统下载、Windows系统教程、windows相关应用程序的文章,希望能够帮助到大家!

C语言中按位左移的运算符为<<,其规则如下:

1按照二进制值每位向高位(书写上是向左)移动n位;

B10010 000(这里最高位的三个0被舍去,其它依次左移,最低位补三个0)=>

B01111000(最高位10舍去,最低位补两个0)=>

printf("0x%hhx<<%d=0x%hhx\n",a,n,a<<n);

0x9e<<2=0x78

可以看到与我们计算结果是相符的。

可以看到与我们计算结果是相符的。

1、移位运算符在程序设计中,是位操作运算符的一种。移位运算符可以在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。

2、在二进制的基础上对数字进行平移

3、在c++中,移位运算符有双目移位运算符:<<(左移)和>>(右移)。移位运算符组成的表达式也属于算术表达式,其值为算术值。左移运算是将一个二进制位的操作数按指定移动的位数向左移动,移出位被丢弃,右边移出的空位一律补0。右移运算是将一个二进制位的操作数按指定移动的位数向右移动,移出位被丢弃,左边移出的空位一律补0,或者补符号位,这由不同的机器而定。在使用补码作为机器数的机器中,正数的符号位为0,负数的符号位为1。

4、在移位运算时,byte、short和char类型移位后的结果会变成int类型,对于byte、short、char和int进行移位时,编译器未做任何优化的情况下(优化后不可预期),规定实际移动的次数是移动次数和32的余数,也就是移位33次和移位1次得到的结果相同。移动long型的数值时,规定实际移动的次数是移动次数和64的余数,也就是移动66次和移动2次得到的结果相同。

5、三种移位运算符的移动规则和使用如下所示:

6、按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。

7、需要移位的数字<<移位的次数

8、例如: 3<< 2,则是将数字3左移2位

9、首先把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011,然后把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位,最后在低位(右侧)的两个空位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 1100,则转换为十进制是12。

10、在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。

11、按二进制形式把所有的数字向右移动对应位移位数,低位移出(舍弃),高位的空位补符号位,即正数补零,负数补1。

12、需要移位的数字>>移位的次数

13、例如11>> 2,则是将数字11右移2位

14、11的二进制形式为:0000 0000 0000 0000 0000 0000 0000 1011,然后把低位的最后两个数字移出,因为该数字是正数,所以在高位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 0010。转换为十进制是2。

15、右移一位相当于除2,右移n位相当于除以2的n次方。

16、按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补零。对于正数来说和带符号右移相同,对于负数来说不同。

wwW.Xtw.Com.cN系统网专业的PC、手机系统开发下载平台,HarmonyOS系统、安卓、OS、windows电脑重装系统在线下载安装,操作系统平台技术学习,攻略教程,技术交流。

免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!

联系邮箱:773537036@qq.com

标签: 移位 运算 计算