为什么short类型表示十六个1的结果是负一?

qq_21539069 2014-10-03 07:41:26
一再加上十五个零是短型的最小值没错呀(无视符号位),那么十六个一为什么表示的是负一?
...全文
966 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_21539069 2014-10-20
  • 打赏
  • 举报
回复
谢谢楼上的几位朋友!
xiezhidong001 2014-10-04
  • 打赏
  • 举报
回复
引用 2 楼 lhylhy 的回复:
因为十六个零是零,十六个零减一就是十六个一。所以short十六个一就是负一。
这个解释很不错啊!
gzliudan 2014-10-04
  • 打赏
  • 举报
回复
这是二进制的基础原理,去看看补码、反码的概念吧
lhy 2014-10-03
  • 打赏
  • 举报
回复
因为十六个零是零,十六个零减一就是十六个一。所以short十六个一就是负一。
abcdefg3211 2014-10-03
  • 打赏
  • 举报
回复
有符号数最高位为 1 就代表负数啊 1000 0000 0000 0000 == -32768 1111 1111 1111 1111 == -1 0111 1111 1111 1111 == 32767 明白了不?

13,874

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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