首页 > 编程知识 正文

小数点二进制转10进制,二进制的小数怎么转十进制

时间:2023-05-05 11:39:35 阅读:174010 作者:4866

将十进制转换为二进制时,整数和小数的转换方法不同,因此需要分别转换十进制的整数部分和小数部分,然后进行合并。

中文名称

从十进制到二进制

外语名称

Decimal system to hsjddxary system适用区域

电子、编程和编码

应用学科

数学

从十进制到二进制到十进制

编辑

语音

十进制二进制1

小数点前面或整数从右向左以二进制数分别乘以2的相应平方递增,小数点后面从左向右乘以2的相应负平方递减。

例如,将二进制数1101.01转换为十进制数

101.01(2)=1*20*21 ) 22 ) 23 )2-1*2-2=10(4) 80.25=13.25 ) 10 ) ) ) ) ) ) ) 65

总结起来,一般公式如下

ABCD.EFG(2)=d * 20c * 21b * 22a * 23e *2- 1f *2- 2g *2-3) 10 ) )

十进位二进位制

或者,通过以下方式:

将二进制数首先写入权重系数展开式,然后按照十进制的加法规则进行合计。 这种做法称为“加权加法”法。

的0次方是1 (任何数的0次方都是1,0的0次方是没有意义的) )。

2的平方是2

2的平方是4

2的3次方是8

的4次方是16

的5次方是32

的六次方是64

的7次方是128

的8次方是256

的9次方是512

2的10次方是1024

2的11次方是2048

2的12次方是4096

2的13次方是8192

2的14次方是16384

2的15次方是32768

2的16次方是65536

2的17次方是131072

2的18次方是262144

2的19次方是524288

2的20次方是1048576

也就是说:

平方

在这种情况下,1101=8 4 0 1=13

例如,如果将二进制数从100011转换为十进制数,则:

数字共有三个,即第六位是一个,第二位是一个,第一位是一个,然后是十进制数,即2的0次方2的1次方2的5次方,即

100011=32 0 0 0 2 1=35

十进制二进制二进制

编辑

语音

1 .将十进制整数转换为二进制整数要将十进制整数转换为二进制整数,采用“除以二取余数,按逆序排列”的方法。 具体来说,将十进制整数除以2,可以得到商和余数。再用2去掉商,可以得到另一个商和余数。 这样进行到商小于1,将先得到的馀数作为二进制的下位有效位,将后得到的馀数作为二进制的上位有效位依次排列。

从十进制整数到二进制

例如,255=(1111111 ) b

255之二=127=====余1

127之二=63=====余1

63之二=31======余1

31之二=15======余1

15之二=7======余1

7/2=3=========余1

3/2=1======余1

1/2=0======余1

789=1100010101(b ) )

789/2=394余1第十名

394/2=197余0第9

197之二=98余1第8

98之2=49余0第7

49之二=24余1第六

24之二=12余0第五

12/2=6多排在第04位

6/2=3余0第三

3/2=1余1第二

1/2=0余1位

原理:

众所周知,二进制基数是2,我们进行十进制化时除以的2就是其基数。 关于其原理,必须谈谈位权的概念。 在某个小数位数法中,各位数字符号所表示的数值,表示该数字符号的值乘以了与数字符号相关的常数。 这个常数称为“比特权”。 比特的大小以基数为底,数字符号所在位置的编号为指数的整数次方。 十进制百位、十位、一位、十位的权分别为10的平方、10的1次幂、10的0次幂、10的-1次幂。 二进制数是2的n次方。

根据权重进行加法运算是十进制以外的十进制。

让我解释一下原理。 举个将十进制整数转换为二进制整数的例子。 假设将十进制整数a化后的二进制数为edcba的形式,则通过上述方法加权展开时

a=a(2^0) b )2^1) c(2^2) d )2^3) e )2^4)之后的和不正是十进制化的过程吗?)

假设这个数没有转换成二进制,除以基数

2得

A/2=a(2^0)/2+b(2^1)/2+c(2^2)/2+d(2^3)/2+e(2^4)/2

注意:a除不开二,余下了!其他的绝对能除开,因为他们都包含2,而a乘的是1,他本身绝对不包含因数2,只能余下。

商得:

b(2^0)+c(2^1)+d(2^2)+e(2^3),再除以基数2余下了b,以此类推。

当这个数不能再被2除时,先余掉的a位数在原数低,而后来的余数数位高,所以要把所有的余数反过来写。正好是edcba

2.十进制小数转换为二进制小数

十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,此时0或1为二进制的最后一位。或者达到所要求的精度为止。

然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。

十进制小数转二进制

如:0.625=(0.101)B

0.625*2=1.25======取出整数部分1

0.25*2=0.5========取出整数部分0

0.5*2=1==========取出整数部分1

再如:0.7=(0.1 0110 0110...)B

0.7*2=1.4========取出整数部分1

0.4*2=0.8========取出整数部分0

0.8*2=1.6========取出整数部分1

0.6*2=1.2========取出整数部分1

0.2*2=0.4========取出整数部分0

0.4*2=0.8========取出整数部分0

0.8*2=1.6========取出整数部分1

0.6*2=1.2========取出整数部分1

0.2*2=0.4========取出整数部分0

原理:

关于十进制小数转换为二进制小数

假设一十进制小数B化为了二进制小数0.ab的形式,同样按权展开,得

B=a(2^-1)+b(2^-2)

因为小数部分的位权是负次幂,所以我们只能乘2,得

2B=a+b(2^-1)

注意a变成了整数部分,我们取整数正好是取到了a,剩下的小数部分也如此。

值得一提的是,小数部分的按权展开的数位顺数正好和整数部分相反,所以不必反向取余数了。

十进制转二进制C++代码void DtoB(int d) {

if(d/2)

DtoB(d/2);

cout<

}

十进制转换二进制python代码def Dec2Bin(dec):

temp = []

result = ''

while dec:

quo = dec % 2

dec = dec // 2

temp.append(quo)

while temp:

result += str(temp.pop())

return result

print(Dec2Bin(62))

#dec要为正整数

=====================================

def bilibili(b):

t=[]

i=''

e=''

while b<0:

b=-b

i='-'

while b//2!=0:

a=b%2

t.append(a)

b=b//2

if b!=0:

t.append(1)

else:

t.append(0)

while t:

e+=str(t.pop())

return (i+"0b"+e)

#b要为整数,效果同Python3.8内置函数hsjddx()

===========================================

十进制转二进制 Visual Basic 2015 代码Private Sub 转换进制(sender As Object, e As EventArgs) Handles btn转换.Click

If str十进制数是否合法(txt十进制数.Text) = "整数" Then

MessageBox.Show(str十进制整数转二进制(txt十进制数.Text))

ElseIf str十进制数是否合法(txt十进制数.Text) = "小数" Then

Dim 整数部分 As Long = CInt(txt十进制数.Text.Substring(0, txt十进制数.Text.IndexOf(".")))

Dim 小数部分 As Double = CDbl(CDbl(txt十进制数.Text) - 整数部分)

MessageBox.Show(str十进制整数转二进制(整数部分) & "." & str十进制小数转二进制(小数部分))

Else

MessageBox.Show("输入数值不合法,请重新输入!")

txt十进制数.SelectAll()

txt十进制数.Focus()

End If

End Sub

Private Function str十进制数是否合法(ByVal str十进制数 As String) As String

If IsNumeric(str十进制数) Then

If str十进制数.Contains(".") Then

Return "小数"

Else

Return "整数"

End If

Else

Return "不是数"

End If

End Function

Private Function str十进制整数转二进制(ByVal lng十进制整数 As Long) As String

Dim lng被除数 As Long = lng十进制整数

Dim str结果 As String

Do

If lng被除数 Mod 2 = 0 Then

str结果 &= "0"

Else

str结果 &= "1"

End If

lng被除数 = lng被除数  2

Loop Until lng被除数 = 0

str结果 = StrReverse(str结果)

Return str结果

End Function

Private Function str十进制小数转二进制(ByVal dbl十进制小数 As Double) As String

Dim dbl被乘数 As Double = dbl十进制小数

Dim str结果 As String

Do

dbl被乘数 *= 2

If dbl被乘数 >= 1 Then

str结果 &= "1"

dbl被乘数 -= 1

Else

str结果 &= "0"

End If

Loop Until dbl被乘数 = 0

Return str结果

End Function

十进制转二进制PHP代码function Dec2Bin($dec) {

if (!is_int($dec)) return false;

$hsjddx = '';

while ($dec>1) {

$hsjddx .= $dec%2;

$dec = ($dec-$dec%2)/2;

}

return strrev($hsjddx.$dec);

}

十进制转二进制JAVA代码

public void hsjddxaryToDecimal(int n) {

for(int i = 31;i >= 0; i--) {

System.out.print(n >>> i & 1);

}

}

词条图册

更多图册

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。