为什么有符号整形变量的范围是-32768~32767 而不是-32767~32767呢?
在TC系统下,一个有符号整型变量占两个字节,即有16个2进制位。
除去第一位表示正负,剩下15为所能表示的最大值应为32767(2的15次方减1),那么加上符号后的范围不应该是-32767~32767吗?-32768是如何得出来的?
C语言:关于有符号整型变量范围的问题
答案:2 悬赏:10 手机版
解决时间 2021-03-02 20:33
- 提问者网友:呐年旧曙光
- 2021-03-02 02:26
最佳答案
- 五星知识达人网友:平生事
- 2021-03-02 03:49
15位所能表达的数是 0--32767 总共 32768个数
加一个符号位 正的 0--32767
负的 0的最高位加一个1 可不是 -0 而是 -32768
负数用补码方式存储 FFFF表示-1 从FFFF到8000也是总共32768个数 也就是 -1 到 -32768
-32768--- -1 0 ----32768 16位 总共 65536个数
加一个符号位 正的 0--32767
负的 0的最高位加一个1 可不是 -0 而是 -32768
负数用补码方式存储 FFFF表示-1 从FFFF到8000也是总共32768个数 也就是 -1 到 -32768
-32768--- -1 0 ----32768 16位 总共 65536个数
全部回答
- 1楼网友:北方的南先生
- 2021-03-02 04:50
有符号整形变量int型的,在c语言里面规定是用两个字节也就是16个二进制位来表示的。最高为用来表示正负,后面还有15位数,于是一共可以表示2的15次方个数字,也就是32768个,但是呢,数字0是用的16个二进制0表示的,所以正数只能到32767了,负数则是到-32768.这两个数字就是这么来的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯