已知[x]补=1.1001,已知[y]补=1.1110,用变形补码计算2[x]补+1⼀2[y]补=?并判断结果有无溢出?

2024-11-01 01:31:06
有3个网友回答
网友(1):

解析如下:

计算机中的有符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。

变形补码,又称”模4补码“即用两个二进制位来表示数字的符号位,其余与补码相同。变形补码,用“00”表示正,用“11”表示负,也称为模4的补码。

用变形补码进行加减运算时,当运算结果的符号位出现“01”或者“10”时,则表示产生溢出。变形补码的最高位(第一个符号位)总是表示正确的符号,比如"00"、 “01”分别表示正数、正溢出(上溢),"11"、“10”表示负数、负溢出(下溢)。

总的说来就是符号位左边那一位表示正确的符号,0为正,1为负;右边那一位如果和左边的相同,如 "00”表示正且无溢出,"11"表示负且无溢出。如果右边那一位与左边那一位不一样,则表示有溢出。

网友(2):

在百度解答窗文本编辑对齐不便,且将解答内容以截图方式贴出:

网友(3):

变形补码,双符号位,在计算机中,都是不存在的。
因为,并没有任何计算机,使用变形补码。

所以,这方面的分析与计算,都是毫无意义的。
分析来,分析去,都不符合实际。
当然,创造出变形补码的专家,不会同意这个说法。