二进制补码10000000的源码是多少?

2024-11-17 11:23:31
推荐回答(3个)
回答(1):

  10000000-00000001=10000000+11111111=011111111 ,结果为01111111,而且有进位,表示有溢出,最高为必须参与运算,因为机器是不知道是否原码还是补码,这也就是把减法变成加法的方法.128已经超出一个字节的有符号整数的表示范围了,-128为10000000,正数只能到127.

  计算机只能识别0和1,使用的是二进制,而在日常生活中人们使用的是十进制,"正如亚里士多德早就指出的那样,今天十进制的广泛采用,只不过是我们绝大多数人生来具有10个手指头这个解剖学事实的结果。尽管在历史上手指计数(5,10进制)的实践要比二或三进制计数出现的晚。".为了能方便的与二进制转换,就使用了十六进制(2 4)和八进制1.数值有正负之分,计算机就用一个数的最高位存放符号(0为正,1为负).这就是机器数的原码了。

  

回答(2):

无法用8位的源码表示
这个数的真值是 -2^7
源码的表示范围是 -(2^7 - 1)到 2^7 - 1
补码的表示范围是 -2^7 到 2^7 - 1
补码要多出一个数,而这个数就是你问的10000000

在源码里面00000000和100000000都是表示0
这样比较浪费,在补码里面,就把100000000当做
-2^7 ,以扩大补码表示范围

希望我的回答对你有所帮助

回答(3):

二进制补码10000000的源码是多少?

这是一个无解的难题。

按照“取反加一”的说法,每个补码,都有一个对应的原码。

但是,就有这样一种情况:

 -128 具有八位的补码,却没有原码和反码。

取反加一! 

可是,拿什么取反加一呢?

鼓吹“取反加一”的小伙伴,你有什么好办法呀?

-----------------------


其实,补码的来源,和原码反码符号位,是毫无关系的。

计算机所使用的补码,是由“数值”推导出来的。

补码,有自己定义式。如下:

 当 X >= 0,  [ X ]补 = X;     零和正数不用变换。

 当 X < 0,  [ X ]补 = X + 2^n。 n 是补码的位数。

这公式,是通用的。 你去翻翻书,应该能找到这公式。

---------------------

那么,[-128]补 = -128 + 2^8 = 1000 0000 (二进制)。

所以,补码 1000 0000,它代表的数值,就是-128。

而-128 的八位原码和反码,都是不存在的。你就别想了。