我想问一下如何将负分数十进制数表示为带符号的二进制数。例如,二进制中的-0.5是什么。
答案 0 :(得分:2)
首先,您可以将负数视为正数。在单独找到小数和小数部分之后,您可以通过将所有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
就是这样。
答案 1 :(得分:1)
希望您对此有帮助。
如果您想处理带符号的二进制文件(有所不同),请访问我链接的源,并阅读有关它的更多信息。该资源有一个在线计算器供您使用。
来源: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(二进制)。您可以在提供的来源中进行检查。工作如下:
答案 2 :(得分:0)
就像十进制一样,小数点左边的数字是基数的上升功率,右边的数字是减少功率。
所以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
答案 3 :(得分:0)
将负的十进制数(以10为底)转换为二进制(以2为底)是相对简单的操作。
我以-10为例。 您应该做的第一件事是在二进制文件01010中表示正10。 下一步是翻转所有位,这意味着将零更改为一个,反之亦然; 10101。 最后一步是将1添加到10101,结果为10110。