小问题

loookc 2009-10-21 04:17:26
大家好,请问这段话是什么意思啊?
“若在某机器上short类型占16位,那么可以赋给short类型的最大数是2^15-1即32767
而unsigned short类型的最大数为2^16-1即65535”


在第一句中为什么不是2^16-1呢,不是占16位吗?
谢谢
...全文
80 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
loookc 2009-10-21
  • 打赏
  • 举报
回复
哦,明白了,谢谢大家
TADICAN 2009-10-21
  • 打赏
  • 举报
回复
short占16bit,最高bit如果为1,表示这个数是一个负数,如果最高位是0,表示这个数是正数。剩下的15bit用来表示你数值的大小。所以最大的数应该是2^15-1.你肯定会问,16bit应该可以表示2^16中状态啊,你最大的是2^15-1,那剩下的状态哪里去了。剩下的状态中有2^15用来表示负数,还一个用来表示0.最小值为-2^15

如果是无符号数,那么最高bit也用来表示数值大小,最大是2^16 -1.最小值为0.
ithiker 2009-10-21
  • 打赏
  • 举报
回复
第一位为0,剩下15个1表示的数为可以表示的最大的数,相应的十进制数为:2^0+2^1+……2^14=2^15-1
codesnail 2009-10-21
  • 打赏
  • 举报
回复
符号位占了一位,所以只有15位了,hoho。。。
cyldf 2009-10-21
  • 打赏
  • 举报
回复
short还有负数撒,占了一半
heis07w 2009-10-21
  • 打赏
  • 举报
回复
有符号数虽然是16位,但它的第一位用来表示是正还是负,一般1为负,0为正。后面的15位才用来表示数值。
whg01 2009-10-21
  • 打赏
  • 举报
回复
无符号数是16位,有符号数是15位,最高位用于表示正负号。
zhaokugua 2009-10-21
  • 打赏
  • 举报
回复
如果是有符号数,最高位是符号位,如果是无符号数则没有符号位
olncy 2009-10-21
  • 打赏
  • 举报
回复
那是符号位?
short是有符号的
unsigned short是无符号的

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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