int 形的整数的取值范围为什么是-32768-32767而不是-32767-32767
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/14 05:54:24
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位的,同理
那么,表示正数的话,表示的范围为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位的,同理
int 形的整数的取值范围为什么是-32768-32767而不是-32767-32767
为什么C语言中short int 范围是-32768---32767 而不是 -(2^16-1)---32767?
c语言变量的取值范围int 的取值范围是-32767 到 32767 请问-32767到32767是什么意思.意思是自然
指针是一个无符号整数(unsigned int)它是一个以当前系统寻址范围为取值范围的整数
表达式INT(RAND()*90+10)的取值范围是[10,99] 这是为什么,
VB int(rnd*(-7)+4)*int(rnd*5-10) 随机数产生的范围.为什么答案是【-30,18】而不是【
关于C语言中有符号的整数值范围为什么是从-32768~32767
int 类型取值范围的困惑
vbRnd函数中,如果是要求0到100之间的整数(包括0,100),为什么是Int(Rnd*100) 而不是Int(Rn
c语言中int变量范围为什么是—32768至32767 就是正数的最大是2的15次方减一,想请教为什么要减一呢?
C语言中整数的取值范围是:-32768~32767 问:是不是有一个变量a=32767+1就超出
整数a的取值范围是2