早教吧作业答案频道 -->数学-->
为什么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取值范围...的网友还看了以下:
4.38083.5496保留整数,一位小数,两位小0.9273数4.38083.5496保留整数, 2020-04-08 …
下列说法正确的是()A.两位小数一定比一位小数大B.把1.01中的“0”去掉,大小不变C.大于2. 2020-04-11 …
我想问:一位小数乘两位小数一定得三位小数对吗是按化简前的还是化简后的例如:0.5x0.04=0.0 2020-04-27 …
精确到十位"的小数应是一位小数还是两位小数?"精确到十位"很多人认为只有一位小数,可是这一位小数一 2020-05-13 …
选择,大于5.0小于5.9的一位小数一共有几个.A7,B8,C9,D无数 2020-05-21 …
判断题,对的打勾,错的打叉(1)一个数乘一个小于1的数,所得的积比原数小()(2)大于0.01又小 2020-07-08 …
一个三位小数,保留两位小数后约是0.50这个三位小数,一定不大A0.499B0.500C0.504 2020-07-09 …
保留两位小数一般是什么意思,是小数点后2位,比如65.731=65.736?还是非零数后面2位,比 2020-07-17 …
一个小数保留一位小数一定比保留两位小数小.(判断对错) 2020-07-18 …
一位粗心的会计把一笔整数的钱数(以元做单位)在账本上记成有两位小数,一查账少了3787.74元.一 2020-07-21 …