首页 > 编程知识 正文

二进制数110101的格雷码,二进制11111111

时间:2023-05-05 11:45:41 阅读:111197 作者:420

C语言的32位int类型数据在运算过程中可能溢出,如下所示:

-2147483648-1会得到什么结果?

-2147483648(1)能得到什么结果?

2147483647 1会得到什么结果?

编译器执行的结果分别如下所示。

-2147483648-1=2147483647;

-2147483648(1)=2147483647

2147483647 1=-2147483648

说明发生这些情况的理由。

-2147483648的二进制文件为1000000000000000000000,a-1=10000000000000000000

很明显在这里溢出,结果为7FFFFFFFF。 用int表示的话是2147483647。

-2147483648*(-1 )相对于-2147483648逐位反转,得到7FFFFFFF即为2147483647。

2147483647的二进制文件表示为7FFFFFFF,加1等于80000000,即-2147483648。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。