~按位取反问题

flyingdelphin 2006-02-11 01:00:03
我用VC++编译器,计算~10,得出的结果是-11。为什么不是5呢
10的二进制表示为1010,按位取反应该为0101,也就是十进制的5,为什么会得出-11?
请指教!
...全文
1720 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangqiushi 2006-03-18
  • 打赏
  • 举报
回复
高手!!
leisureftso 2006-02-11
  • 打赏
  • 举报
回复
负数是按补码的形式存放在内存中的
flyingdelphin 2006-02-11
  • 打赏
  • 举报
回复
谢谢,不过
11111111 11111111 11111111 11110101 = -11
看不太明白,-11的二进制表示是怎样的呢?
lyff8neo 2006-02-11
  • 打赏
  • 举报
回复
学习小知识,上面地是对地。
digifish 2006-02-11
  • 打赏
  • 举报
回复
VC是32位编译器,所以
10(10进制) = 00000000 00000000 00000000 00001010 (2进制)
~10 = 11111111 11111111 11111111 11110101 = -11

69,387

社区成员

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

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