分享一下我在复习c语言中的一些遇到的问题:
今天测试shor int 的表示范围,int 的内存位4个字节 shot int的内存位2个字节 一个字节又等于八个比特位 由此换算出shot int 的有十六个比特位可得出shot int 的表示范围为65535,但是重点来了,65535表示的是范围,而不是最大值,我一开始就认为他是最大值,结果顺行出来的值老是有问题
最终原因是在这里 16位二进制原码最大为 0111 1111 1111 1111 = 215 - 1 = 32767, 最小为 1111 1111 1111 1111 = -(215 - 1) = -32767 ,这俩个值加起来刚好就等于65535 ,
最后提醒一下首位为符号位,0位正,1为负




文章讲述了在复习C语言时遇到的关于shortint类型表示范围的问题。作者最初误以为65535是最大值,但实际是范围。通过16位二进制原码解释,最大值为32767,最小值为-32767,两者相加等于65535。关键点在于首位为符号位,0表示正,1表示负。

8772

被折叠的 条评论
为什么被折叠?



