2016 - 2024

感恩一路有你

无符号右移和右移运算符的区别 C语言带符号数的左移右移搞不清楚?

浏览量:2895 时间:2021-03-12 18:05:39 作者:admin

C语言带符号数的左移右移搞不清楚?

对于位操作,操作对象可以是有符号的或无符号的。如果运算符有符号且其值为负,则位操作如何处理运算符的“有符号位”取决于机器。左移运算符在右侧插入一个值为0的二进制位。右移运算符的行为>>;取决于左侧操作对象的类型:如果是无符号的,则在左侧插入一个值为0的二进制位;如果是有符号的,则在左侧插入一个有符号位的副本或一个值为0的二进制位,具体取决于特定的环境。

“无符号右移”怎么用?

另一方面,对于无符号数据,右移必须是逻辑的。有符号数需要考虑正数和负数的情况,其算术右移需要在左端对原始符号位(最高位)进行补充;无符号数没有符号位,其右移运算总是在左端对零进行补充。因此,对于无符号数不存在所谓的“算术右移运算”,必须使用左端为零的“逻辑右移运算”。

默认情况下,Python的整数是无限宽的大整数。

正整数不需要无符号右移。

只有负整数需要无符号右移。

此时,我们应该首先考虑为什么会得到负整数。一般来说,输入数据有问题。最好直接输入正整数。

如果真的要处理负整数,可以先处理结构包转换为指定的宽度字节,然后解包为所需的正数,然后右移。

无符号右移和右移运算符的区别 左移运算符怎么计算 输入两个数字和一个运算符

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。