还没有笔记
选中页面文字后点击「高亮」按钮添加
please take a deep breath, think step by step,请扮演一位FUNDAMENTALS OF COMPUTER SYSTS的计算机专家,用详细的中文step by step地解释并回答以下双引号中的问题,名词请附上对应的英文:
让我们慢慢来,能否用详细的中文和清晰的符号表示给出题目中的从零基础的一步一步的概念解释:
能否用详细的中文和清晰的符号表示给出从零基础的一步一步的详细解题步骤,特别是看到什么的时候能够判断什么的推理链:
可以用精确的数学符号和数学表达式来展示细致严谨的推理逻辑链吗?从题目中的什么条件判断出什么,又因为什么公式推导出答案?
2. 将以下(十进制)数字转换为其8位二进制表示,使用:(i) 带符号位,(ii) 1的补码,(iii) 2的补码形式:
(a) $-1$
(b) $-15$
(c) $-67$
(d) $-127$
下面我用8位来做三种表示法,并把每一步的“看到什么→判断什么→怎么做”的推理链写清楚。(我会把关键名词/术语都加粗,并在后面给出对应英文。)
你要把给定的十进制(decimal)负数转换成8位二进制表示(8-bit binary representation),分别用三种有符号表示法(signed representation):
给定数字:$-1,,-15,,-67,,-127$
看到什么 → 判断什么:
看到“带符号位”,就知道:
算法:
看到什么 → 判断什么:
看到“1的补码”,就知道负数是“把对应正数按位取反”。
规则:
注意点(很常见的坑):
看到什么 → 判断什么:
看到“2的补码”,就知道负数是“按位取反再加一”。
两种等价算法(任选一种做题):
负数 $-x$ 的8位2补码 = $2^8 - x = 256 - x$ 的无符号二进制
这是后面三种方法的共同“底座”。
我把每个数字都给出三种结果,并在旁边写清楚关键步骤。
| 十进制(decimal) | (i) 带符号位(sign-magnitude) | (ii) 1的补码(one’s complement) | (iii) 2的补码(two’s complement) |
|---|---|---|---|
| $-1$ | 10000001 | 11111110 | 11111111 |
| $-15$ | 10001111 | 11110000 | 11110001 |
| $-67$ | 11000011 | 10111100 | 10111101 |
| $-127$ | 11111111 | 10000000 | 10000001 |
如果你愿意,我也可以把每个结果用“把它当作有符号数再解码回去”的方式逐个验算一遍,确保完全一致。