假设我需要将十进制 -125 转换为带符号的 8 位整数,我该怎么做?
我是一名计算机专业的学生,我正在努力弄清楚如何解决这个问题。我了解将其转换为基数 2 的基础知识,但我无法得到答案。
谢谢
有符号的 8 位整数保留其最高位作为符号。
1
表示负数,0
表示正数。让我们从这里开始吧。
您要转换的数字是
-125
,因此第一位应该是 1
。
1XXX XXXX
对于接下来的七位,我们将看看它们代表的数字与我们尝试转换的数字有多少次。
我们数字的第二位代表
2^6
或64
。我们问64
可以进入125
多少次,发现答案是1.953125
。
我们不能将这个数字表示为
1
或 0
,但我们可以这样思考:
64 除以 125 一次,余数为 0.953125 次(或 61)
让我们在第二位中计算一次,然后使用余数
61
作为我们的新数字。
11XX XXXX
接下来是第三位,代表
2^5
或32
。 32
可以进入 61
多少次?答案不是整数,而是 1.90625
,因此我们再次遵循上一步的逻辑:使用 1
作为我们的第三位数字,使用 29
作为我们的新数字。
111X XXXX
第四位代表
2^4
或16
,进入29
一次,余数为13
。
1111 XXXX
第五位代表
2^3
或8
,进入13
一次,余数为5
。
1111 1XXX
第六位代表
2^2
或4
,进入5
一次,余数为1
。
1111 11XX
第七位代表
2^1
或 2
进入 1 零次。
1111 110X
第八位也是最后一位代表
2^0
或 1
,进入 1
一次。
1111 1101
因此我们
-125
的 8 位有符号表示是 11111101
。