移位操作符

本文介绍了二进制的左移(<<)和右移(>>)操作符。左移操作符将二进制数向左移动指定位数,右边补0。右移操作符则有两种类型:算术右移(保留符号位)和逻辑右移(全补0)。通过实例解析了这两种操作符的工作原理,包括负数在补码表示下的右移。此外,还简单提及了整数的原码、反码和补码表示。

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

左移操作符(<<)

运算规则:将二进制左移动一位。左边丢弃,右边补0。

例:a = 2 << 1  00000010 << 1 =  00000100  =   4 。

右移操作符(>>)

运算规则:将二进制右移动一位。有两种算法,一种是算术右移,右移丢弃,左边补原符号位;另外一种是逻辑右移,右移丢弃,左边补0。(负数是以补码的形式进行)

例:a = 10 >> 1  00001010 >> 1 = 00000101 =  5 

       a =  -1 >> 1  11111111  >> 1 =  11111111   = -1

可以得出是以算术右移运算。

关于负数在内存中存放的是补码。

整数的二进制形式有三种:

原码:直接根据数值写出的二进制序列就是原码。

反码:原码的符号位不变,其他位按位取反就是反码。

补码:反码+1,就是补码。

例:-1

原码:10000001

反码:11111110

补码:11111111

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值