0取反为什么是-1呢?

yukiwang313 2011-03-14 03:44:51
需要解题步骤啊
...全文
2966 11 打赏 收藏 举报
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
h100037 2011-03-14
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
0 = 00000000000000000000000000000000
取反11111111111111111111111111111111
如果是带符号的,上面就是-1
  • 打赏
  • 举报
回复
相关推荐
发帖
C语言

6.6w+

社区成员

C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
帖子事件
创建了帖子
2011-03-14 03:44
社区公告
暂无公告