我想问一下如何将负分数十进制数表示为带符号的二进制数。例如什么是二进制的-0.5。
首先,您可以将负数视为正数。在单独找到小数和小数部分之后,您可以通过将所有1分别设为0和0到1来将其转换为负数。最后你需要加1。
例如,要先将-5.75转换为二进制,我们需要确定点的位置和二进制数的长度。让我们将数字的长度定义为8位,4位用于小数,4位用于小数部分。
首先找到(正)5.75的二进制表示:
5=0101
0.75=.1100 then
5.75=0101.1100 in 8 bits
要转换为负数,过程是标准的,反转所有位并将1加到最低有效位。
number: 0101.1100
inversion: 1010.0011
addition of 1: 1010.0011 + 0.0001=1010.0100
让我们检查一下你的陈述是否正确:
bin(1010.0100) = -8 + 2 + 0.25 = -5.75
就这样。
我希望你觉得这有帮助。
如果你想处理已签名的二进制文件(不同的东西),那么请转到我链接的源代码并阅读更多相关信息。该来源有一个在线计算器供您使用。
资料来源:http://www.realbinaryconverter.com/index.php
将小数分数转换为二进制分数
使用像436.656625这样的数字并尝试转换为二进制是一个简单的过程。让我们不关心转换整个整数部分(436),因为上面已经介绍过了。我们现在要做的就是转换二进制小数部分(.656625),然后将它与二进制整数部分组合。
Multiply 0.656625 by 2: 0.656625*2=1.31325
Keep note of that 1 from the whole part
Remove the 1. Now we have 0.31325
Repeat step 2: multiply by 2: 0.31325*2=0.6265
Keep note of that 0 from the whole part
Multiply by 2: 0.6265*2=1.253
Keep note of that 1 from the whole part
Remove the 1. Now we have 0.253
Multiply by 2: 0.253*2=0.506
Keep note of that 0 from the whole part
Multiply by 2: 0.506*2=1.012
Keep note of that 1 from the whole part
Remove the 1. Now we have 0.012
重复以下过程:乘以2并注意得到的整数部分。如果整数部分为1,请记下该整数部分,然后删除该部分并继续此过程。 ...
最后,我们的二进制分数表示为.10101000000110 ...(并继续)。我现在将以更简单的结果进行演示。将0.8125转换为二进制。
0.8125*2=1.625, we get 1
0.625*2=1.25, we get 1
0.25*2=0.5, we get 0
0.5*2=1.0, we get 1
精光!
现在取我们得到的数字,按照我们得到的顺序将它们放在小数点后面。二进制0.8125 = 0.1101。
现在回答你的具体问题
Multiply 0.5 by 2: 0.5*2=1.0
Keep note of that 1 from the whole part
Remove the 1. Now we have 0
精光!现在我们取出我们得到的数字,并按照我们得到它们的顺序将它们放在小数点之后。 0.5 = 0.1二进制。
所以二进制中-0.5 = -0.1。您可以在提供的来源处查看此信息。这是工作:
就像十进制一样,小数点左边的数字是基数的上升功率,右边的数字是减少功率。
所以124.71
是:
10^2 10^1 10^0 10^-1 10^-2
100 + 20 + 4 + 7/10 + 1/100
二进制,它是相同的,除了上升的权力是1, 2, 4, 8, ...
而不是1, 10, 100, 1000, ...
。
减少的力量不是1/10, 1/100, 1/1000, ...
而是1/2, 1/4, 1/8, ...
。
所以-0.5
是一个简单的,因为它只包含1/2
地方,二进制:
-0.1: - means it will be negative.
0 x 2^0(1) = 0
1 x 2^-1(1/2) = 0.5
----
-0.5
通过对各个地方求和来建立更复杂的数字。例如,十进制65.625
是:
1 x 2^6 = 64
0 x 2^5
0 x 2^4
0 x 2^3
0 x 2^2
0 x 2^1
1 x 2^0(1) = 1
.
1 x 2^-1 = 0.5
0 x 2^-2
1 x 2^-3 = 0.125
^ ------
| 65.625
|
+-> 1000001.101
将负十进制(base-10)数转换为二进制(base-2)是一种相对简单的操作。
我会以-10为例。你应该做的第一件事是用二进制表示正10:01010。下一步是翻转所有位,这意味着将零改为1,反之亦然; 10101.最后一步是将1到10101加1,结果为10110。