C程序按位:值为-1 >> 1

C程序按位:值为-1 >> 1,第1张

概述对于GCC 32位,-1>> 1让我回到FFFFFFFF,但我想在2的补码后,我会得到 0111 1111 … 1111应该是7fff ffff.我错过了什么? 在大多数实现中,该运算符对有符号类型执行算术移位,因此它保留符号位(最左边的位),在本例中为1. 正如@Clifford正确指出的那样,语言标准离开了>>的实现.由实施者决定. 有关详细信息,请参阅Wikipedia article. 对于GCC 32位,-1>> 1让我回到FFFFFFFF,但我想在2的补码后,我会得到
0111 1111 … 1111应该是7fff ffff.我错过了什么?解决方法 在大多数实现中,该运算符对有符号类型执行算术移位,因此它保留符号位(最左边的位),在本例中为1.

正如@Clifford正确指出的那样,语言标准离开了>>的实现.由实施者决定.

有关详细信息,请参阅Wikipedia article.

总结

以上是内存溢出为你收集整理的C程序按位:值为-1 >> 1全部内容,希望文章能够帮你解决C程序按位:值为-1 >> 1所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1220100.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存