maroon5j 发表于 2017-5-18 22:46:39

求亲们,关于数据类型的问题

整型常量无符号的短整型和符号短整型的取值范围是如何算出来的?为什么无符号是0~65535,符号短整型是-32768~32767?{:10_269:}

人造人 发表于 2017-5-18 23:51:17

本帖最后由 人造人 于 2017-5-18 23:52 编辑

sizeof(short int) == 2

短整型在我的环境中占2个字节

如果无符号,那就用16位全部表示正数(1个字节8位,2个字节16位)

2的16次方等于65536(是从1数到65536,一共有65536个数,如果从0数,应该是0~65536-1)
2的16次方减1等于65535
无符号 0~65535


如果有符号,那就用一半来表示负数,另一半表示正数,8位表示负数,8位示正数

2的16次方等于65536
除以2等于 32768
从1数到32768
从-1数到-32768
还有一个0,在正数中减一个
从0数到32768-1(也就是0~32767)

所以有符号-32768~32767

当回首遇上转身 发表于 2017-5-18 23:56:53

无符号短整型变量说明它是非负数,所以最高位不是符号,而是数据;因为短整型是2字节,16位的,所以表示的范围就是 0~0xFFFF 即 0~(2^16-1),也就是0~65535.
而短整型变量说明它是有符号位的,即最高位是符号为0是正数,为1是负数;所以范围是:-2^15~2^15-1也就是-32768~32767

maroon5j 发表于 2017-5-19 20:59:37

人造人 发表于 2017-5-18 23:51
sizeof(short int) == 2

短整型在我的环境中占2个字节


谢谢,亲{:10_297:}

maroon5j 发表于 2017-5-19 21:03:42

当回首遇上转身 发表于 2017-5-18 23:56
无符号短整型变量说明它是非负数,所以最高位不是符号,而是数据;因为短整型是2字节,16位的,所以表示的 ...

谢谢,亲{:10_297:}

微笑向暖~ 发表于 2017-5-24 23:05:39

建议你去看一下小甲鱼的视频,讲解的你会懂得

daihai7185 发表于 2017-5-26 14:08:44

基础的还是要多看多学啊
页: [1]
查看完整版本: 求亲们,关于数据类型的问题