早教吧作业答案频道 -->数学-->
为什么32位机int取值范围是-2^31~2^31-1?为什么不是-2^31-1~2^31-1?假设是3位机.最大值为011(+3)最小值为111(-3).正数和负数取值范围一样啊.怎么上面不一样?
题目详情
为什么32位机int取值范围是-2^31~2^31-1?为什么不是-2^31-1~2^31-1?假设是3位机.最大值为011(+3)最小
值为111(-3).正数和负数取值范围一样啊.怎么上面不一样?
值为111(-3).正数和负数取值范围一样啊.怎么上面不一样?
▼优质解答
答案和解析
刚才已经给你回答了这个问题,但是貌似你没明白.
3位机的话总长度是2^3,对有符号数来说各占一半,也就是2^2=4,也就是三位机的int范围为(-4~+4),但是0被划到了正数的范畴,所以三位机中int的范围应该是(-4~+3),对于你说的011是表示+3没问题,但是计算机中负数是用补码表示的,并不是像你说的111的最高位是1表示负号,然后后面的11表示3结果就是-3.那这样的话32位机上的int范围也不对了.
计算补码应该遵循这样的原则,正数的原码,反码和补码都一样,
负数的补码计算方式为:先对原码-4取绝对值,也就是4即二进制形式的100,再对这个绝对值取反(即每一位由1变0,由0变1)因此上面的100就变成了011,然后对反码进行加1操作,就得到了补码100,也就是-4的补码是11100,也就是说100表示的是-4,而不是-3
3位机的话总长度是2^3,对有符号数来说各占一半,也就是2^2=4,也就是三位机的int范围为(-4~+4),但是0被划到了正数的范畴,所以三位机中int的范围应该是(-4~+3),对于你说的011是表示+3没问题,但是计算机中负数是用补码表示的,并不是像你说的111的最高位是1表示负号,然后后面的11表示3结果就是-3.那这样的话32位机上的int范围也不对了.
计算补码应该遵循这样的原则,正数的原码,反码和补码都一样,
负数的补码计算方式为:先对原码-4取绝对值,也就是4即二进制形式的100,再对这个绝对值取反(即每一位由1变0,由0变1)因此上面的100就变成了011,然后对反码进行加1操作,就得到了补码100,也就是-4的补码是11100,也就是说100表示的是-4,而不是-3
看了 为什么32位机int取值范围...的网友还看了以下:
求矩阵|1/31/2|的特征值和特征向量.急……|2/31/2||1/31/2||2/31/2| 2020-05-14 …
已知函数f(x)满足f(x3-1)=lnx,求f’(x)X2若函数f(x)=ax3+(a-1)x2 2020-05-21 …
求助!有没有这个公式:定积分∫[Asin(2π/T)]^2=(A^2*T)/4高中物理交流电那块讲 2020-06-10 …
1.赛后他说:我的名次.分数和我的年龄乘起来是2156他的了名次?分数?2.小马虎由于粗心把31. 2020-06-11 …
正弦电流电路相关计算(2+2j)I-j2(I-1∠0°)=2∠0°+2∠0°分不够可以再加只要你说 2020-06-14 …
为什么32位机int取值范围是-2^31~2^31-1?为什么不是-2^31-1~2^31-1?假 2020-07-18 …
数学难题一位同学发现:2+1=3,2*3+1=7,2*3*5+1=31,2*3*5*7+1=211 2020-07-18 …
请高手帮我看一下这段DevC++运行结果错误的原因#include#includemain(){i 2020-07-23 …
数学,线性代数,设A是方阵,A的k次方=0,k为正整数,求I+A+(A^2)/2!+(A^3)/.. 2020-11-20 …
求解答关于数学外推假设数据的误差服从正态分布,利用连续4个历时时刻观测数据记为x(i-4),x(i- 2021-01-19 …