补码怎么算

2024-04-18 14:22:24
补码怎么算希望能解答下
写回答

最佳答案

1、正数的补码表示:

正数的补码 = 原码

= {原码符号位不变} + {数值位从右边数第一个1及其右边的0保持不变,左边安位取反}

以十进制整数+97和-97为例:

+97补码 = 0110_0001b

-97原码= 1110_0001b

-97补码= 1001_1111b

2024-04-18 14:22:24
赞 9972踩 0

全部回答(2)

补码中第一位是符号位,只有剩下的七位是数值位,即

数值位全为 1 时,最大值为 -27 - 1 ,即 -127;如果再加 1 就会发生溢出变成 1000 0000。

在补码中只有一个 0 ,即 0000 0000,+0;而 -0 ,1000 0000 在补码中规定用来表示 -128,也就是补码中的一种 数码结合 形式,符号位也表示数值位。

上面只是说规定 1000 0000 表示 -128,那么, -128 的补码可以通过计算出来吗?

答案是可以的,我们可以通过无符号数来计算出补码(无符号数的补码原码和反码都是一样的)。

有符号数可以通过模运算来获得对应的无符号数(n 位二进制数的模为 2n,即 8 位二进制数的模为 256):

当 0<= x <= 27 时,x无 = x

当 -27 <= x < 0 时,x无 = x + 28

2024-04-18 14:22:24
赞 7730踩 0

正数的补码就是其本身

如+9的补码是00001001。

负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)

[+1] = [00000001]原 = [00000001]反 = [00000001]补

[-1] = [10000001]原 = [11111110]反 = [11111111]补

对于负数, 补码表示方式也是人脑无法直观看出其数值的. 通常也需要转换成原码在计算其数值。

正整数的补码是其二进制表示,与原码相同 。

例:+9的补码是00001001。

求负整数的补码,将其对应正数二进制表示所有位(包括符号位)取反(0变1,1变0,符号位为1不变)后加1 。

2024-04-18 14:22:24
赞 511踩 0