二进制的1101转化成十进制.docx

上传人:b****8 文档编号:30447590 上传时间:2023-08-15 格式:DOCX 页数:14 大小:23.94KB
下载 相关 举报
二进制的1101转化成十进制.docx_第1页
第1页 / 共14页
二进制的1101转化成十进制.docx_第2页
第2页 / 共14页
二进制的1101转化成十进制.docx_第3页
第3页 / 共14页
二进制的1101转化成十进制.docx_第4页
第4页 / 共14页
二进制的1101转化成十进制.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

二进制的1101转化成十进制.docx

《二进制的1101转化成十进制.docx》由会员分享,可在线阅读,更多相关《二进制的1101转化成十进制.docx(14页珍藏版)》请在冰豆网上搜索。

二进制的1101转化成十进制.docx

二进制的1101转化成十进制

二进制的1101转化成十进制

  1101

(2)=1*2^0+0*2^1+1*2^2+1*2^3=1+0+4+8=13

  转化成十进制要从右到左用二进制的每个数去乘以2的相应次方

  不过次方要从0开始

  相反用十进制的13除以2每除一下将余数就记在旁边

  最后按余数从下向上排列就可得到1101

  十进制转二进制:

  用2辗转相除至结果为1

  将余数和最后的1从下向上倒序写就是结果

  例如302

  302/2=151余0

  151/2=75余1

  75/2=37余1

  37/2=18余1

  18/2=9余0

  9/2=4余1

  4/2=2余0

  2/2=1余0

  1/2=0余1

  故二进制为100101110

  二进制转十进制

  从最后一位开始算,依次列为第0、1、2...位

  第n位的数(0或1)乘以2的n次方

  得到的结果相加就是答案

  例如:

01101011.转十进制:

  第0位:

1乘2的0次方=1

  1乘2的1次方=2

  0乘2的2次方=0

  1乘2的3次方=8

  0乘2的4次方=0

  1乘2的5次方=32

  1乘2的6次方=64

  0乘2的7次方=0

  然后:

1+2+0

  +8+0+32+64+0=107.

  二进制01101011=十进制107.

  由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。

这种做法称为"按权相加"法。

二进制转十进制

  本人有个更直接的方法,例如二进制数1000110转成十进制数可以看作这样:

  数字中共有三个1即第二位一个,第三位一个,第七位一个,然后十进制数即2的2-1次方+2的3-1次方+2的7-1次方即2+4+64=70次方数即1的位数减一。

如此计算只需要牢记2的前十次方即可在此本人为大家陈述一下:

2的0次方是1

  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

  在这里仅为您提供前16次方,若需要更多请自己查询。

十进制数转换为二进制数

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

十进制转二进制

  110011

1.十进制整数转换为二进制整数

  十进制整数转换为二进制整数采用"除2取余,逆序排列"法。

具体做法是:

用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为一时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

  十进制整数转二进制

  如:

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

  789/2=394.5=1第10位

  394/2=197=0第9位

  197/2=98.5=1第8位

  98/2=49=0第7位

  49/2=24.5=1第6位

  24/2=12=0第5位

  12/2=6=0第4位

  6/2=3=0第3位

  3/2=1.5=1第2位

  1/2=0.5=1第1位

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

  十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。

具体做法是:

用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的整数部分为零,或者整数部分为1,此时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.101100110...)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

  。

  。

 

1.十----->二

  给你一个十进制,比如:

6,如果将它转换成二进制数呢?

  10进制数转换成二进制数,这是一个连续除2的过程:

  把要转换的数,除以2,得到商和余数,

  将商继续除以2,直到商为0。

最后将所有余数倒序排列,得到数就是转换结果。

  听起来有些糊涂?

我们结合例子来说明。

比如要转换6为二进制数。

  “把要转换的数,除以2,得到商和余数”。

  那么:

十转二示意图

要转换的数是6,6÷2,得到商是3,余数是0。

  “将商继续除以2,直到商为0……”

  现在商是3,还不是0,所以继续除以2。

  那就:

3÷2,得到商是1,余数是1。

  “将商继续除以2,直到商为0……”

  现在商是1,还不是0,所以继续除以2。

  那就:

1÷2,得到商是0,余数是1

  “将商继续除以2,直到商为0……最后将所有余数倒序排列”

  好极!

现在商已经是0。

  我们三次计算依次得到余数分别是:

0、1、1,将所有余数倒序排列,那就是:

110了!

  6转换成二进制,结果是110。

  把上面的一段改成用表格来表示,则为:

  被除数计算过程商余数

  66/230

  33/211

  11/201

  (在计算机中,÷用/来表示)

2.二---->十

  二进制数转换为十进制数

  二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……

  所以,设有一个二进制数:

01100100,转换为10进制为:

  下面是竖式:

  01100100换算成十进制

  "^"为次方

  第1位0*2^0=0

  第2位0*2^1=0

  第3位1*2^2=4

  第4位0*2^3=0

  第5位0*2^4=0

  第6位1*2^5=32

  第7位1*2^6=64

  第8位0*2^7=0+

  公式:

第N位2^(N-1)

  ---------------------------

  100

  用横式计算为:

  0*2^0+0*2^1+1*2^2+0*2^3+0*2^4+1*2^5+1*2^6+0*2^7=100

  0乘以多少都是0,所以我们也可以直接跳过值为0的位:

  1*2^2+1*2^5+1*2^6=100

3.十---->八

  10进制数转换成8进制的方法,和转换为2进制的方法类似,唯一变化:

除数由2变成8。

  来看一个例子,如何将十进制数120转换成八进制数。

  用表格表示:

  被除数计算过程商余数

  120120/8150

  1515/817

  11/801

  120转换为8进制,结果为:

170。

4.八---->十

  八进制就是逢8进1。

  八进制数采用0~7这八数来表达一个数。

  八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8的2次方……

  所以,设有一个八进制数:

1507,转换为十进制为:

  用竖式表示:

  1507换算成十进制。

  第0位7*8^0=7

  第1位0*8^1=0

  第2位5*8^2=320

  第3位1*8^3=512

  --------------------------

  839

  同样,我们也可以用横式直接计算:

  7*8^0+0*8^1+5*8^2+1*8^3=839

  结果是,八进制数1507转换成十进制数为839

 

5.十---->十六

  10进制数转换成16进制的方法,和转换为2进制的方法类似,唯一变化:

除数由2变成16。

  同样是120,转换成16进制则为:

  被除数计算过程商余数

  120120/1678

  77/1607

  120转换为16进制,结果为:

78。

6.十六---->十

  16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这六个字母来分别表示10,11,12,13,14,15。

字母不区分大小写。

  十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……

  所以,在第N(N从0开始)位上,如果是是数X(X大于等于0,并且X小于等于15,即:

F)表示的大小为X*16的N次方。

  假设有一个十六进数2AF5,那么如何换算成10进制呢?

  用竖式计算:

  2AF5换算成10进制:

  第0位:

5*16^0=5

  第1位:

F*16^1=240

  第2位:

A*16^2=2560

  第3位:

2*16^3=8192+

  -------------------------------------

  10997

  直接计算就是:

  5*16^0+F*16^1+A*16^2+2*16^3=10997

  (别忘了,在上面的计算中,A表示10,而F表示15)

  现在可以看出,所有进制换算成10进制,关键在于各自的权值不同。

  假设有人问你,十进数1234为什么是一千二百三十四?

你尽可以给他这么一个算式:

  1234=1*10^3+2*10^2+3*10^1+4*10^0

 

7.二---->八

  (11001.101)

(二)

  整数部分:

从后往前每三位一组,缺位处用0填补,然后按十进制方法进行转化,则有:

  001=1

  011=3

  然后我们将结果按从下往上的顺序书写就是:

31,那么这个31就是二进制11001的八进制形式

  小数部分:

从前往后每三位一组,缺位处用0填补,然后按十进制方法进行转化,则有:

  101=5

  然后我们将结果部分按从上往下的顺序书写就是:

5,那么这个5就是二进制0.101的八进制形式

  所以:

(11001.101)

(二)=(31.5)(八)

8.八---->二

  (31.5)(八)

  整数部分:

从后往前每一位按十进制转化方式转化为三位二进制数,缺位处用0补充则有:

  1---->1---->001

  3---->11

  然后我们将结果按从下往上的顺序书写就是:

11001,那么这个11001就是八进制31的二进制形式

  说明,关于十进制的转化方式我这里就不再说了,上一篇文章我已经讲解了!

  小数部分:

从前往后每一位按十进制转化方式转化为三位二进制数,缺位处用0补充则有:

  5---->101

  然后我们将结果按从下往上的顺序书写就是:

101,那么这个101就是八进制5的二进制形式

  所以:

(31.5)(八)=(11001.101)

(二)

9.十六---->二;二---->十六

  二进制和十六进制的互相转换比较重要。

不过这二者的转换却不用计算,每个C,C++程序员都能做到看见二进制数,直接就能转换为十六进制数,反之亦然。

  我们也一样,只要学完这一小节,就能做到。

  首先我们来看一个二进制数:

1111,它是多少呢?

  你可能还要这样计算:

1*2^0+1*2^1+1*2^2+1*2^3=1*1+1*2+1*4+1*8=15。

  然而,由于1111才4位,所以我们必须直接记住它每一位的权值,并且是从高位往低位记,:

8、4、2、1。

即,最高位的权值为2^3=8,然后依次是2^2=4,2^1=2,2^0=1。

  记住8421,对于任意一个4位的二进制数,我们都可以很快算出它对应的10进制值。

  下面列出四位二进制数xxxx所有可能的值(中间略过部分)

  仅4位的2进制数快速计算方法十进制值十六进值

  1111=8+4+2+1=15F

  1110=8+4+2+0=14E

  1101=8+4+0+1=13D

  1100=8+4+0+0=12C

  1011=8+0+2+1=11B

  1010=8+0+2+0=10A

  1001=8+0+0+1=99

  ....

  0001=0+0+0+1=11

  0000=0+0+0+0=00

  二进制数要转换为十六进制,就是以4位一段,分别转换为十六进制。

  如(上行为二制数,下面为对应的十六进制):

  11111101,10100101,10011011

  FD,A5,9B

  反过来,当我们看到FD时,如何迅速将它转换为二进制数呢?

  先转换F:

  看到F,我们需知道它是15(可能你还不熟悉A~F这五个数),然后15如何用8421凑呢?

应该是8+4+2+1,所以四位全为1:

1111。

  接着转换D:

  看到D,知道它是13,13如何用8421凑呢?

应该是:

8+4+1,即:

1101。

  所以,FD转换为二进制数,为:

11111101

  由于十六进制转换成二进制相当直接,所以,我们需要将一个十进制数转换成2进制数时,也可以先转换成16进制,然后再转换成2进制。

  比如,十进制数1234转换成二制数,如果要一直除以2,直接得到2进制数,需要计算较多次数。

所以我们可以先除以16,得到16进制数:

  被除数计算过程商余数

  12341234/16772

  7777/16413(D)

  44/1604

  结果16进制为:

0x4D2

  然后我们可直接写出0x4D2的二进制形式:

010011010010。

  其中对映关系为:

  0100--4

  1101--D

  0010--2

  同样,如果一个二进制数很长,我们需要将它转换成10进制数时,除了前面学过的方法是,我们还可以先将这个二进制转换成16进制,然后再转换为10进制。

  下面举例一个int类型的二进制数:

  01101101111001011010111100011011

  我们按四位一组转换为16进制:

6DE5AF1B

  再转换为10进制:

6*16^7+D*16^6+E*16^5+5*16^4+A*16^3+F*16^2+1*16^1+B*16^0=1,843,769,115

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1