欢迎来到我的技术博客! 🎉
这里不仅有满满的编程干货和学习资源,我的某站账号也为你准备了更多实用的技术视频和知识分享。
👉 点击关注我的小破站账号,获取更多编程技巧和学习资源!
小破站主页
题目:设 x = FEH x = \text{FEH} x=FEH,当 x x x 分别为下列情况时,写出其对应的十进制真值,并写出计算过程:
- 原码
- 补码
解题步骤:
1. 原码表示
-
转换为二进制:
FEH 是一个十六进制数,先将其转换为二进制:
F = 1111 , E = 1110 F = 1111, \quad E = 1110 F=1111,E=1110
因此, FEH \text{FEH} FEH 对应的二进制为:
FEH = 1111 1110 B \text{FEH} = 1111\ 1110B FEH=1111 1110B -
判断正负:
在原码中,最高位为符号位:- 最高位为 1,表示这是一个负数;
- 去掉符号位,数值部分为 111 1110 B 111\ 1110B 111 1110B,即十进制的 126。
-
最终结果:
因此,原码表示的十进制真值为:
x = − 126 x = -126 x=−126
2. 补码表示
-
补码计算方法:
补码的负数用反码加 1 的方式表示。给定的 FEH = 1111 1110 B \text{FEH} = 1111\ 1110B FEH=1111 1110B已经是补码形式。- 最高位为 1,表示这是一个负数。
- 计算补码对应的原码,需要进行 取反码加 1 的操作。
-
步骤:
- 取反码:对补码中的数值位(即除符号位外的部分)进行取反:
取反 = 1000 0001 B 取反 = 1000\ 0001B 取反=1000 0001B - 加 1:
1000 0001 B + 1 = 1000 0010 B 1000\ 0001B + 1 = 1000\ 0010B 1000 0001B+1=1000 0010B
转换为十进制是 2。 - 符号处理:因为最高位为 1,所以补码表示的是负数。结果是:
x = − 2 x = -2 x=−2
- 取反码:对补码中的数值位(即除符号位外的部分)进行取反:
最终答案:
- 原码下: x = − 126 x = -126 x=−126
- 补码下: x = − 2 x = -2 x=−2
我服了,这个题答案就给了个答案,虽然我答案算对了,但是不知道过程怎么写,然后就在网上查了一下过程的写法上面就是。
我虽然算对了但是这个过程我觉得,,一言难尽。下面是我的过程。