逻辑右移与算术右移

简介

在C语言的移位运算中(左移或者右移),一般来说,机器支持两种形式的右移:逻辑右移与算术右移。

逻辑右移

x>>k

逻辑右移在左端补k个0,如下:

操作值1值2
参数x0110 00111001 0101
x>>40000 01100000 1001

算术右移

x>>k

算术右移是在左端补k个最高有效位的值,如下:

操作值1值2
参数x0110 00111001 0101
x>>40000 01101111 1001

在C语言中,C语言标准并没有明确定义对于有符号数应该使用哪种类型的右移,然而,实际上几乎所有的编译器/机器组合都对有符号数使用算术右移,另外,对于无符号数,右移必须是逻辑的。

  • 23
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值