0取反为什么是-1呢?

yukiwang313 2011-03-14 03:44:51
需要解题步骤啊
...全文
5328 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
h100037 2011-03-14
  • 打赏
  • 举报
回复 1
11111111111111111111111111111111 是补码, 计算机里的表现形式
10000000000000000000000000000001 是源码, -1
源码符号位不变,求反 + 1 就是补码。
所以-1在计算机里就是11111111111111111111111111111111, 0 求反刚好是11111111111111111111111111111111

masmaster 2011-03-14
  • 打赏
  • 举报
回复
负数在计算机里以补码的形式存在
yukiwang313 2011-03-14
  • 打赏
  • 举报
回复
10000000000000000000000000000001是补码吧?怎么会是原码
h100037 2011-03-14
  • 打赏
  • 举报
回复
不大好意思, 说错了, 是补码, 不是反码
负数以补码形式存储
h100037 2011-03-14
  • 打赏
  • 举报
回复
10000000000000000000000000000001 是源码, 就是 -1
zhengjiankang 2011-03-14
  • 打赏
  • 举报
回复
-1 是 0x80000000 也就是10000000000000000000000000000000.
h100037 2011-03-14
  • 打赏
  • 举报
回复
计算机内, 负数已反码形式存储, 符号位不变, 源码求反加1, 就是反码
11111111111111111111111111111111 就是
10000000000000000000000000000001 求反 11111111111111111111111111111110
加1 就是 11111111111111111111111111111111
yukiwang313 2011-03-14
  • 打赏
  • 举报
回复
还是不理解。我知道取反是把0变成1,1变成0,然后符号位的区别只是最高位一个是0 一个是1 那其余位呢?加起来怎么是变成-1的????
bdmh 2011-03-14
  • 打赏
  • 举报
回复
带符号和不带符号的区别,带符号的最高位代表符号位
yukiwang313 2011-03-14
  • 打赏
  • 举报
回复
11111111111111111111111111111111为什么会是-1呢?8懂
pathuang68 2011-03-14
  • 打赏
  • 举报
回复 2
0 = 00000000000000000000000000000000
取反11111111111111111111111111111111
如果是带符号的,上面就是-1

69,772

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧