int 形的整数的取值范围为什么是-32768-32767而不是-32767-32767请讲解详细点,谢谢!

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/02 11:50:43
int 形的整数的取值范围为什么是-32768-32767而不是-32767-32767请讲解详细点,谢谢!

int 形的整数的取值范围为什么是-32768-32767而不是-32767-32767请讲解详细点,谢谢!
int 形的整数的取值范围为什么是-32768-32767而不是-32767-32767
请讲解详细点,谢谢!

int 形的整数的取值范围为什么是-32768-32767而不是-32767-32767请讲解详细点,谢谢!
对于有符号的整数,用补码表示的话,比如说8位(即char,BYTE类型的),最高位是符号位,下面7位用来表示数据.
那么,表示正数的话,表示的范围为00000001-01111111,也就是说,8位表示正数,最高只能是127,最高是符号位嘛,是不能用的.
表示0:00000000
下面表示负数,相信你应该知道表示的方法,即补码是原码取反加1,听起来有点复杂,算起来更不简单,其实是这样的:CPU的加减法运算,其实是循环进行加减的,即当其由00000000加到11111111时,如果再加1,就又会为00000000了,只不过溢出寄存器会置位的.而当其由00000001减1,即为00000000,如果再减1,就会为11111111,这是什么?不就是-1吗?其实就是说:以十进制数来说,1-1=0,0-1=-1,这是显然的,再减?那就减吧.那么,从00000000可以减到什么时候呢?当然是不能与正数的补码重合就行了,所以可以从11111111-10000000,即从-1到-128.
所以,整个范围是-128~127.16位的,32位的,同理