十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。

中文名

十进制转二进制

外文名

Decimal system to binary system适用领域

电子、编程、编码

应用学科

数学

十进制转二进制二进制转十进制

编辑

语音

十进制转二进制方法一

小数点前或者整数要从右到左用二进制的每个数去乘以2的相应次方并递增,小数点后则是从左往右乘以二的相应负次方并递减。

例如:二进制数1101.01转化成十进制

1101.01(2)=1*20+0*21+1*22+1*23+0*2-1+1*2-2=1+0+4+8+0+0.25=13.25(10)

所以总结起来通用公式为:

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

十进制转二进制方法二

或者用下面这种方法:

把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。

2的0次方是1(任何数的0次方都是1,0的0次方无意义)

2的1次方是2

2的2次方是4

2的3次方是8

2的4次方是16

2的5次方是32

2的6次方是64

2的7次方是128

2的8次方是256

2的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

即:

2的次方

此时,1101=8+4+0+1=13

再比如:二进制数100011转成十进制数可以看作这样:

数字中共有三个1 即第六位一个,第二位一个,第一位一个(从右到左),然后对应十进制数即2的0次方+2的1次方+2的5次方, 即

100011=32+0+0+0+2+1=35

十进制转二进制十进制转二进制

编辑

语音

1. 十进制整数转换为二进制整数十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

十进制整数转二进制

如:255=(11111111)B

255/2=127=====余1

127/2=63======余1

63/2=31=======余1

31/2=15=======余1

15/2=7========余1

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

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

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

789=1100010101(B)

789/2=394 余1 第10位

394/2=197 余0 第9位

197/2=98 余1 第8位

98/2=49 余0 第7位

49/2=24 余1 第6位

24/2=12 余0 第5位

12/2=6 余0 第4位

6/2=3 余0 第3位

3/2=1 余1 第2位

1/2=0 余1 第1位

原理:

众所周知,二进制的基数为2,我们十进制化二进制时所除的2就是它的基数。谈到它的原理,就不得不说说关于位权的概念。某进制计数制中各位数字符号所表示的数值表示该数字符号值乘以一个与数字符号有关的常数,该常数称为 “位权 ” 。位权的大小是以基数为底,数字符号所处的位置的序号为指数的整数次幂。十进制数的百位、十位、个位、十分位的权分别是10的2次方、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内置函数bin()

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

十进制转二进制 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;

$bin = '';

while ($dec>1) {

$bin .= $dec%2;

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

}

return strrev($bin.$dec);

}

十进制转二进制JAVA代码

public void binaryToDecimal(int n) {

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

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

}

}

词条图册

更多图册

十进制小数转二进制用计算机操作,十进制转二进制相关推荐

  1. 总结计算机中十进制数二进制数,计算机中十进制转换为二进制的新方法

    计算机,考试必备! 计算机中十进制转换为二进制的另一方法 -------"定位减权法" 胡燏 (四川建筑职业技术学院计算机系,618000) [摘要]本文从十进制与二进制的特点入手 ...

  2. 计算机中十进制转二进制逻辑原理,.计算机中为什么要采用二进制?及二进制的基本运算规则,还有.二进制数据与十进制、八进制、十六进制数据之间的转换方法?...

    满意答案 sqq212527 2013.04.11 采纳率:46%    等级:12 已帮助:10556人 编辑本段简介 20世纪被称作第三次科技革命的重要标志之一的计算机的发明与应用,其运算模式正是 ...

  3. 计算机与十进制 教案,二进制与十进制间的转换教案

    十进制与二进制间的转换 [教学目的与要求] 1.熟悉数制的概念:2.掌握位权表示法: 3.熟练掌握各数制之间的转换方法. [课时安排] 1课时. [教学重点与难点] 1.难点:位权表示法 十进制转化为 ...

  4. 初中计算机教案十进制转二进制,十进制二进制教案

    "信息技术基础"是高中信息技术课程的必修部分,其中信息的编码这课要求学生能够熟练掌握二进制与十进制数的相互转换,在信息技术高考中被列为Ⅱ级要求,即对所列知识要理解其确切含义及与其它 ...

  5. 初中计算机教案十进制转二进制,二进制与十进制转换(教案).doc

    二进制与十进制的转换教案 [教学目的与要求] 1.熟悉数制的概念: 2.掌握位权表示法: 3.熟练掌握二进制与十进制之间的转换方法. [课时安排] 1课时. [教学重点与难点] 1.难点:位权表示法 ...

  6. 初中计算机教案十进制转二进制,高中信息技术二进制十进制转换教案

    二进制十进制转换教案[教学目的与要求]1.熟悉数制的概念:2.掌握位权表示法:3.熟练掌握各数制之间的转换方法.[课时安排]1课时.[教学重点与难点]1.难点:位权表示法十进制转化为二进制2.重点:二 ...

  7. 科学计算机二进制算法,计算机是怎么理解二进制的?

    计算机是怎么理解二进制的? 计算机的发明最初纯粹是为了计算数字, 让一个机器能够通过输入不同的数字, 进行加减乘除等. 首先要约定好机器能处理的数是什么样的, 即输入是什么样的, 才能去制造计算机. ...

  8. 计算机基础十进制转二进制,计算机基础---1、十进制0.1转二进制

    计算机基础---1.十进制0.1转二进制 一.总结 一句话总结: 用脑子,10进制整数转2进制是除2,10进制小数转2进制是靠乘2取1 二.十进制0.1转二进制 进制转换 0.1(十进制) = 0.0 ...

  9. linux字符串转为二进制,Linux printf将十进制转换为二进制?

    不,C printf 没有二进制格式的格式修饰符( http://www.cplusplus.com/reference/cstdio/printf/ ),以及linux util 也没有扩展它 %b ...

  10. 计算机中进制相互转换(二进制、八进制、十进制和十六进制)

    进制的相互转换 一.进制的缩写和形式表示 二.十进制转换为二进制.八进制.十六进制 2.1十进制转二进制 2.2十进制转八进制 2.3十进制转十六进制 三.八进制转换为十进制.二进制.十六进制 3.1 ...

最新文章

  1. 中科院刘焕勇老师知识图谱关于schema博客
  2. redis序列化_实例讲解Springboot以Template方式整合Redis及序列化问题
  3. 深入解读阿里云Redis开发规范:不要只会setget
  4. 页面上水平飞舞的图片
  5. JDK源码分析——Java的SPI机制分析与实战
  6. oracle+trace参数设置,Oracle autotrace参数详解
  7. 调用Microsoft.Jet.OLEDB.4.0需要MDAC2.7支持
  8. mysql 字符集支持情况
  9. vue中动态指令参数
  10. ARP、RARP、ICMP、ping
  11. Android 高仿微信支付密码输入控件
  12. 免安装mysql5.7.22_windows环境下安装MySQL5.7.22免安装版
  13. Dreamweaver制作漂亮的网页Flash电子相册
  14. 在Chrome浏览器添加IDM插件——顽强版
  15. IB驱动包下载 : Ubuntu 16.04 的 IB驱动 iso、source包、tgz包
  16. C语言 fwrite 覆盖文件原始数据问题
  17. [小技巧1]Word或WPS文献引用、交叉引用方括号编号
  18. java_opts=quot;-server,tomcat高并发的配置
  19. postman打不开的解决办法
  20. Mixly第26课~第28课,内容抢先看 | Mixly米思齐纯干货系列

热门文章

  1. html5网页设计大作业-dw企业网页设计带图片轮播留言 hbuilder大学生网页设计作业成品模板|百岁山矿泉水网页设计
  2. Visio_Premium_project_vol版
  3. tomcat编码配置gbk_Tomcat运行环境编码设置
  4. 盘点那些适合写api接口的工具
  5. QT之TreeWidgetItem基本使用
  6. 复杂网络MATLAB工具箱
  7. 小米安卓java模拟器手机版_Android P(9.0) 行为变更完美适配WebView(小米手机也适用)...
  8. chrome frame节点 取_Chrome Frame插件解决IE浏览器兼容问题
  9. 数据、运营相关试题(三)【牛客网:数据运营试题广场】
  10. windbg中ntsd使用用户态调试器链接到内核调试器的常用技巧