带符号数的移位

本文介绍了带符号数在进行移位操作时的规则,包括原码移位和补码移位。在算术移位中,符号位保持不变,左移相当于乘以2,右移相当于除以2。对于原码,无论是正数还是负数,移位时空出位都以0补入。而在补码中,正数移位同样以0补入,负数移位则根据方向补入或1。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

带符号数的移位操作

    算术移位时应保持数的符号位不变,而数值的大小则要发生变化。左移一位相当于该数乘以2,而右移一位相当于该数除以2

1、原码的移位规则

    不论正数还是负数,在左移或右移时,符号位均不变,空出位一律以0补入。
    负数的原码移位前后结果为:

  •     左移:移位前有    111 X1X_1X1 X2X_2X2 ···Xn−1X_{n-1}Xn1 XnX_nXn
              移位后有    111 X2X_2X2 X3X_3X3 ···XnX_nXn    000
  •     右移:移位前有    111 X1X_1X1 X2X_2X2 ···Xn−1X_{n-1}Xn1 XnX_nXn
              移位后有    111000X1X_1X1 ···Xn−2X_{n-2}Xn2 Xn−1X_{n-1}Xn1

2、补码的移位规则

    (1)正数
     符号位不变,不论左移还是右移,空出位一律以0补入。
    (2)负数
     符号位不变,左移后的空出位补0,右移后的空出位补1

  •      左移:移位前有   111 X1X_1X1 X2X_2X2 ···Xn−1X_{n-1}Xn1 XnX_nXn
               移位后有   111 X2X_2X2 X3X_3X3 ···XnX_{n}Xn    000
  •      右移:移位前有   111 X1X_1X1 X2X_2X2 ···Xn−1X_{n-1}Xn1 XnX_nXn
               移位后有   111111X1X_1X1 ···Xn−2X_{n-2}Xn2 Xn−1X_{n-1}Xn1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值