如何将负分数十进制转换为二进制

时间:2017-02-24 13:24:22

标签: binary decimal

我想问一下如何将负分数十进制数表示为带符号的二进制数。例如,二进制中的-0.5是什么。

4 个答案:

答案 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)

希望您对此有帮助。

  • 以下内容将十进制转换为二进制。 如果要使此结果为负,则只需在完成后添加一个减号即可。 (例如,将25.5转换为二进制11001.1,则-25.5为-11001.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。