详解带小数点的数的进制转换

详解带小数点的数的进制转换
详解带小数点的数的进制转换

十进制数转换为二进制数、八进制数、十六进制数的方法:

二进制数、八进制数、十六进制数转换为十进制数的方法:按权展开求和法1.二进制与十进制间的相互转换:

(1)二进制转十进制

方法:“按权展开求和”

例:(1011.01)2 =(1×23+0×22+1×21+1×20+0×2-1+1×2-2 )10

=(8+0+2+1+0+0.25)10

=(11.25)10

规律:个位上的数字的次数是0,十位上的数字的次数是1,......,依奖递增,而十

分位的数字的次数是-1,百分位上数字的次数是-2,......,依次递减。

注意:不是任何一个十进制小数都能转换成有限位的二进制数。

(2)十进制转二进制

·十进制整数转二进制数:“除以2取余,逆序排列”(短除反取余法)

例:(89)10 =(1011001)2

2 89

2 44 (1)

2 22 0

2 11 0

2 5 (1)

2 2 (1)

2 1 0

0 (1)

·十进制小数转二进制数:“乘以2取整,顺序排列”(乘2取整法)例:(0.625)10= (0.101)2

0.625

X 2

1.25 1

X 2

0.5 0

X 2

1.0 1

2.八进制与二进制的转换:

二进制数转换成八进制数:从小数点开始,整数部分向左、小数部分向右,每3位为一组用一位八进制数的数字表示,不足3位的要用“0”补足3位,就得到一个八进制数。

八进制数转换成二进制数:把每一个八进制数转换成3位的二进制数,就得到一个二进制数。

例:将八进制的37.416转换成二进制数:

3 7 .

4 1 6

011 111 .100 001 110

即:(37.416)8 =(11111.10000111)2

例:将二进制的10110.0011 转换成八进制:

0 1 0 1 1 0 . 0 0 1 1 0 0

2 6 . 1 4

即:(10110.011)2 =(26.14)8

3.十六进制与二进制的转换:

二进制数转换成十六进制数:从小数点开始,整数部分向左、小数部分向右,每4位为一组用一位十六进制数的数字表示,不足4位的要用“0”补足4位,就得到一个十六进制数。

十六进制数转换成二进制数:把每一个十六进制数转换成4位的二进制数,就得到一个二进制数。

例:将十六进制数5DF.9 转换成二进制:

5 D F .9

0101 1101 1111 .1001

即:(5DF.9)16 =(10111011111.1001)2

例:将二进制数1100001.111 转换成十六进制:

0110 0001 .1110

6 1 . E

即:(1100001.111)2 =(61.E)16

注意:以上所说的二进制数均是无符号的数。这些数的范围如下表:

无符号位二进制数位数数值范围十六进制范围表示法

8位二进制数0~255 (255=28-1)00~0FFH

16位二进制数0~65535 (65535=216-1)0000H~0FFFFH

32位二进制数0~232-1 00000000H~0FFFFFFFFH

很完整的2、8、10、16进制转换方法

最近在研究C语言,因为要用到各进制间转换,所以收集了一些资料…

这是一节“前不着村后不着店”的课。不同进制之间的转换纯粹是数学上的计算。不过,你不必担心会有么复杂,无非是乘或除的计算。

生活中其实很多地方的计数方法都多少有点不同进制的影子。

比如我们最常用的10进制,其实起源于人有10个指头。如果我们的祖先始终没有摆脱手脚不分的境况,我想我们现在一定是在使用20进制。

至于二进制……没有袜子称为0只袜子,有一只袜子称为1只袜子,但若有两袜子,则我们常说的是:1双袜子。

生活中还有:七进制,比如星期。十六进制,比如小时或“一打”,六十进制,比如分钟或角度……

我们找到问号字符(?)的ASCII值是63,那么我们可以把它转换为八进值:77,然后用‘\77′来表示’?'。由于是八进制,所以本应写成‘\077′,但因为C,C++规定不允许使用斜杠加10进制数来表示字符,所以这里的0可以不写。

事实上我们很少在实际编程中非要用转义符加八进制数来表示一个字符,所以,6.2.4小节的内容,大家仅仅了解就行。

6.2.5 十六进制数转换成十进制数

2进制,用两个阿拉伯数字:0、1;

8进制,用八个阿拉伯数字:0、1、2、3、4、5、6、7;

10进制,用十个阿拉伯数字:0到9;

16进制,用十六个阿拉伯数字……等等,阿拉伯人或说是印度人,只发明了10个数字啊?

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

6.2.6 十六进制数的表达方法

如果不使用特殊的书写形式,16进制数也会和10进制相混。随便一个数:9876,就看不出它是16进制或10进制。

C,C++规定,16进制数必须以 0x开头。比如 0×1表示一个16进制数。而1则表示一个十进制。另外如:0xff,0xFF,0X102A,等等。其中的x也也不区分大小写。(注意:0x中的0是数字0,而不是字母O)

以下是一些用法示例:

int a = 0×100F;

int b = 0×70 + a;

至此,我们学完了所有进制:10进制,8进制,16进制数的表达方式。最后一点很重要,C/C++中,10进制数有正负之分,比如12表示正12,而-12表示负12,;但8进制和16进制只能用达无符号的正整数,如果你在代码中里:-078,或者写:-0xF2,C,C++并不把它当成一个负数。

6.2.7 十六进制数在转义符中的使用

转义符也可以接一个16进制数来表示一个字符。如在6.2.4小节中说的‘?’字符,可以有以下表达方式:

‘?’ //直接输入字符

‘\77′ //用八进制,此时可以省略开头的0

‘\0×3F’ //用十六进制

同样,这一小节只用于了解。除了空字符用八进制数‘\0′表示以外,我们很少用后两种

方法表示一个字符。

6.3 十进制数转换到二、八、十六进制数

6.3.1 10进制数转换为2进制数

给你一个十进制,比如:6,如果将它转换成二进制数呢?

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

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

将商继续除以2,直到商为0。最后将所有余数倒序排列,得到数就是转换结果。

听起来有些糊涂?我们结合例子来说明。比如要转换6为二进制数。

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

那么:

要转换的数是6, 6 ÷ 2,得到商是3,余数是0。(不要告诉我你不会计算6÷3!)“将商继续除以2,直到商为0……”

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

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

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

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

那就: 1 ÷ 2, 得到商是0,余数是1 (拿笔纸算一下,1÷2是不是商0余1!)

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

好极!现在商已经是0。

我们三次计算依次得到余数分别是:0、1、1,将所有余数倒序排列,那就是:110了!6转换成二进制,结果是110。

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

被除数

计算过程

余数

6

6/2

3

3

3/2

1

1

1

1/2

1

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

如果是在考试时,我们要画这样表还是有点费时间,所更常见的换算过程是使用下图的连除:

(图:1)

请大家对照图,表,及文字说明,并且自已拿笔计算一遍如何将6转换为二进制数。

说了半天,我们的转换结果对吗?二进制数110是6吗?你已经学会如何将二进制数转换成10进制数了,所以请现在就计算一下110换成10进制是否就是6。

6.3.2 10进制数转换为8、16进制数

非常开心,10进制数转换成8进制的方法,和转换为2进制的方法类似,惟一变化:除数由2变成8。

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

用表格表示:

被除数

计算过程

余数

120

120/8

15

15

15/8

1

7

1

1/8

1

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

非常非常开心,10进制数转换成16进制的方法,和转换为2进制的方法类似,惟一变化:除数由2变成16。

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

被除数

计算过程

余数

120

120/16

7

8

7

7/16

7

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

请拿笔纸,采用(图:1)的形式,演算上面两个表的过程。

6.4 二、十六进制数互相转换

二进制和十六进制的互相转换比较重要。不过这二者的转换却不用计算,每个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。即,最高位的权值为23 = 8,然后依次是 22 = 4,21=2, 20 = 1。

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

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

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

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

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

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

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

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

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

1001 = 8 + 0 + 0 + 1 = 10 9

….

0001 = 0 + 0 + 0 + 1 = 1 1

0000 = 0 + 0 + 0 + 0 = 0 0

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

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

1111 1101 , 1010 0101 , 1001 1011

F D , A 5 , 9 B

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

先转换F:

看到F,我们需知道它是15(可能你还不熟悉A~F这五个数),然后15如何用8421凑呢?应该是8 + 4 + 2 + 1,所以四位全为1 :1111。

接着转换 D:

看到D,知道它是13,13如何用8421凑呢?应该是:8 + 2 + 1,即:1011。

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

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

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

被除数

计算过程

余数

1234

1234/16

77

2

77

77/16

4

13 (D)

4

4/16

4

结果16进制为: 0×4D2

然后我们可直接写出0×4D2的二进制形式: 0100 1011 0010。

其中对映关系为:

0100 — 4

1011 — D

0010 — 2

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

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

01101101 11100101 10101111 00011011

我们按四位一组转换为16进制: 6D E5 AF 1B

6.5 原码、反码、补码

结束了各种进制的转换,我们来谈谈另一个话题:原码、反码、补码。

我们已经知道计算机中,所有数据最终都是使用二进制数表达。

我们也已经学会如何将一个10进制数如何转换为二进制数。

不过,我们仍然没有学习一个负数如何用二进制表达。

比如,假设有一 int 类型的数,值为5,那么,我们知道它在计算机中表示为:

00000000 00000000 00000000 00000101

5转换成二制是101,不过int类型的数占用4字节(32位),所以前面填了一堆0。

现在想知道,-5在计算机中如何表示?

在计算机中,负数以其正值的补码形式表达。

什么叫补码呢?这得从原码,反码说起。

原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。

比如 00000000 00000000 00000000 00000101 是 5的原码。

反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。

取反操作指:原为1,得0;原为0,得1。(1变0; 0变1)

比如:将00000000 00000000 00000000 00000101每一位取反,得11111111 11111111 11111111 11111010。

称:11111111 11111111 11111111 11111010 是 00000000 00000000 00000000 00000101 的反码。

反码是相互的,所以也可称:

11111111 11111111 11111111 11111010 和 00000000 00000000 00000000 00000101 互为反码。

补码:反码加1称为补码。

也就是说,要得到一个数的补码,先得到反码,然后将反码加上1,所得数称为补码。

比如:00000000 00000000 00000000 00000101 的反码是:11111111 11111111 11111111 11111010。

那么,补码为:

11111111 11111111 11111111 11111010 + 1 = 11111111 11111111 11111111 11111011

所以,-5 在计算机中表达为:11111111 11111111 11111111 11111011。转换为十六进制:0xFFFFFFFB。

再举一例,我们来看整数-1在计算机中如何表示。

假设这也是一个int类型,那么:

1、先取1的原码:00000000 00000000 00000000 00000001

2、得反码: 11111111 11111111 11111111 11111110

3、得补码: 11111111 11111111 11111111 11111111

可见,-1在计算机里用二进制表达就是全1。16进制为:0xFFFFFF。

一切都是纸上说的……说-1在计算机里表达为0xFFFFFF,我能不能亲眼看一看呢?当然可以。利用C++ Builder的调试功能,我们可以看到每个变量的16进制值。

小数的进制转换:

十进制小数→→→→→八进制小数方法:“乘8取整”

十进制小数→→→→→十六进制小数方法:“乘16取整”例如:

小数部分计算方法:乘2取整法

各种进制之间转换方法

各进制转换方法(转载) 一、计算机中数的表示: 首先,要搞清楚下面3个概念 ?数码:表示数的符号 ?基:数码的个数 ?权:每一位所具有的值 请看例子: 数制十进制二进制八进制十六进制 数码0~9 0~1 0~7 0~15 基10 2 8 16 权10o,101,102,…2o,21,22,…8o,81,82,…16o,161,162,…特点逢十进一逢二进一逢八进一逢十六进一 十进制4956= 4*103+9*102 +5*101+6*10o 二进制1011=1*23+0*22 +1*21+1*2o 八进制4275=4*83+2*82 +7*81+5*8o 十六进制81AE=8*163+1*162 +10*161+14*16o

二、各种进制的转换问题 1.二、八、十六进制转换成十进制 2.十进制转换成二、八、十六进制 3.二进制、八进制的互相转换 4.二进制、十六进制的互相转换 1、二、八、十六进制转换成十进制 方法:数码乘以相应权之和 2、十进制转换成二、八、十六进制 方法:连续除以基,直至商为0,从低到高记录余数

3、二进制、八进制的互相转换 方法: ?二进制转换成八进制:从右向左,每3位一组(不足3位左补0),转换成八进制 ?八进制转换成二进制:用3位二进制数代替每一位八进制数 例(1101001)2=(001,101,001)2=(151)8 例 (246)8=(010,100,110)2=(10100110)2 4、二进制、十六进制的互相转换 方法: ?二进制转换成十六进制:从右向左,每4位一组(不足4位左补0),转换成十六进制 ?十六进制转换成二进制:用4位二进制数代替每一位十六进制数 例(11010101111101)2=(0011,0101,0111,1101)2=(357D)16 例 (4B9E)16=(0100,1011,1001,1110)2=(100101110011110)2 三、各种进制数的运算

二进制八进制十六进制之间的转换详解

二进制转十进制,十进制转二进制的算法 十 表1二进制数和十进制数换算对照表 二进制十进制二进制十进制二进制十进制二进制十进制 00000001130110610019 000110100401117101010 001020101510008101111 采用“二进制数”的算术运算也比较简单,制造成本更经济。二进制的加法运算和乘法运算公式都各有四条规则:加法有0+0=0, 0+1=1,1+0=1,1+1=10;乘法有0*0=0,0*1=0, 1*0=0, 1*1=1,而十进制的加法和乘法运算公式从0+0开始到9+9,从0*0开始到9*9各需规则100条。 2.二进制代码 电子计算机中的数是用二进制表示的,在计算机中也采用二进制代码表示字母、数字字符、各种各样的符号、汉字等。在处理信息的过程中,可将若干位的二进制代码组合起来表示各种各样的信息。但由于二进制数不直观,人们在计算机上实际操作时,输入、输出的数使用十进制,而具体转换成二进制编码的工作则由计算机软件系统自动完成。 字母和各种字符在计算机中的传输普遍采用Ascll码

(American Standard Code For lnformation lnterchange),即美国标准信息交换码,它用了7位二进制数来表达字母和各种常用字符(见附录)。 对于汉字信息的表示比较复杂,我国有汉字几万个,常用的汉字也有7000多个,为了统一,我国制定了汉字编码标准,规定了一、二级汉字共6763个,用两个字节(16位二进制代码)来表示一个汉字进制转二进制: 用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 故二进制为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.

各种进制之间转换方法

各进制转换方法(转载)一、计算机中数的表示: 首先,要搞清楚下面3个概念 ?数码:表示数的符号 ? 基:数码的个数 ?权:每一位所具有的值

、各种进制的转换问题 1. 二、八、十六进制转换成十进制 2. 十进制转换成二、八、十六进制 3. 二进制、八进制的互相转换 4. 二进制、十六进制的互相转换 1、二、八、十六进制转换成十进制 方法:数码乘以相应权之和 例(HloJ-l/25+lx24+l/23+0/22+ h2:+h20 -(59)10 例(136)8=lx82+3x8l+6x8°=(94)10 例(1F2^)1S=1X163+15X16S +2\16] + 10/16° = (7978)10 2、十进制转换成二、八、十六进制 方法:连续除以基,直至商为0,从低到高记录余数

例把十进制数159转换成八进制数 8| 19 8辽 (159)IO =(237)8 例把十进制数59转换成二进制数 (59)IO =(111O11)2 2 余余余余余余 8 159

例把十进制数459转换成十六进制数 u | 1| C| B (459)io=(1CB)ib ' 3、二进制、八进制的互相转换 方法: *二进制转换成八进制:从右向左,每3位一组(不足3位左补0),转换成八进制*八进制转换成二进制:用3位二进制数代替每一位八进制数 例(1101001)2=(001,101,001)2=(151)8 例(246)8=(010,100,110)2=(10100110)2 4、二进制、十六进制的互相转换 方法: 二进制转换成十六进制:从右向左,每4位一组(不足4位左补0),转换成十六进制 *十六进制转换成二进制:用4位二进制数代替每一位十六进制数 例(11010101111101)2=(0011,0101,0111,1101)2=(357D)16 例(4B9E)16=(0100,1011,1001,1110)2=(100101110011110)2 三、各种进制数的运算 方法:逢满进具体计算与平时十进制的计算类似,以十六进制为例: 加法:

计算机进制转换

二进制、八进制、十进制、十六进制之间转换二进制、八进制、十进制、十六进制之间转换 一、十进制与二进制之间的转换 (1)十进制转换为二进制,分为整数部分和小数部分 ①整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。下面举例: 例:将十进制的168转换为二进制 得出结果将十进制的168转换为二进制,(10101000)2 分析:第一步,将168除以2,商84,余数为0。 第二步,将商84除以2,商42余数为0。 第三步,将商42除以2,商21余数为0。 第四步,将商21除以2,商10余数为1。 第五步,将商10除以2,商5余数为0。 第六步,将商5除以2,商2余数为1。 第七步,将商2除以2,商1余数为0。 第八步,将商1除以2,商0余数为1。 第九步,读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,即10101000 (2)小数部分 方法:乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分 为零为止。如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。换句话说就是0舍1入。读数要从前面的整数读到后面的整数,下面举例: 例1:将0.125换算为二进制 得出结果:将0.125换算为二进制(0.001)2 分析:第一步,将0.125乘以2,得0.25,则整数部分为0,小数部分为0.25; 第二步, 将小数部分0.25乘以2,得0.5,则整数部分为0,小数部分为0.5; 第三步, 将小数部分0.5乘以2,得1.0,则整数部分为1,小数部分为0.0; 第四步,读数,从第一位读起,读到最后一位,即为0.001。 例2,将0.45转换为二进制(保留到小数点第四位)

进制之间的转换

--进制之间的转换-- 介绍:进制也就是进位计数制,是人为定义的带进位的计数方法(有不带进位的计数方法,比如原始的结绳计数法,唱票时常用的“正”字计数法,以及类似的tally mark计数)。对于任何一种进制---X进制,就表示每一位置上的数运算时都是逢X进一位。十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。 --常见的几种进制 二进制(B)十进制(D)十六进制(H)八进制(O) 1.二进制 二进制有两个特点:它由两个数码0、1组成,二进制的规律是逢二进一。 -转换。 a.将二进制转换为十进制。 例子:将二进制数10111.1011转换为十进制 解析: 小数点前 1 0 1 1 ------ 转换为十进制 1×23 0×22 1×21 1×20 ------ 8+0+2+1=11 小数点后1 0 1 1 ------ 转换为十进制 1×2-1 0×2-21×2-31×2-4 ---- 0.5+0+0.125+0.0625=0.6875 则,二进制1011.1011转换为十进制数为 11+0.6875=11.6875. (1011.1011) B =(11.6875) D b.将二进制转换为八进制。 例子:将二进制数10111.1011转换为八进制 解析: (由小数点开始,向两边每3个分为一组) 001 011 .101 100 (按照二进制转十进制的算法,算出每三个所对应的十进制数) 1 3 . 5 4 则,(1011.1011) B =(13.54) O c.将二进制转换为十六进制。 例子:将二进制数10111.1011转换为八进制解析:

各种进制之间的转换方法

各种进制之间的转换方法 ⑴二进制B转换成八进制Q:以小数点为分界线,整数部分从低位到高位,小数部分从高位到低位,每3位二进制数为一组,不足3位的,小数部分在低位补0,整数部分在高位补0,然后用1位八进制的数字来表示,采用八进制数书写的二进制数,位数减少到原来的1/3。 例:◆二进制数转换成八进制数: = 110 110 . 101 100B ↓↓ ↓ ↓ 6 6 . 5 4 = ◆八进制数转换成二进制数: 3 6 . 2 4Q ↓ ↓ ↓ ↓ 011 110 . 010 100 = ◆ 低位,每4位二进制数为一组,不足4位的,小数部分在低位补0,整数部分在高位补0,然后用1位十六进制的数字来表示,采用十六进制数书写的二进制数,位数可以减少到原来的1/4。 例:◆二进制数转换成十六进制数: .100111B = 1011 0101 1010 . 1001 1100B ↓ ↓ ↓ ↓ ↓ B 5 A . 9 C = 5A ◆十六进制数转换成二进制数: = A B . F EH ↓ ↓ ↓ ↓ 1010 1011. 1111 1110 = .1111111B 先把八进制数Q转换成二进制数B,再转换成十六进制数H。 例:◆八进制数转换成十六进制数: = 111 100 000 010 . 100 101B = .100101B = 1111 0000 0010 . 1001 0100B = F 0 2 . 9 4H = ◆十六进制数转换成八进制数: = 0001 1011 . 1110B = = 011 011 . 111B = 3 3 . 7Q = ⑷二进制数B转换成十进制数D:利用二进制数B按权展开成多项式和的表达式,取基数为2,逐项相加,其和就是相应的十进制数。

各种进制之间的转换(可编辑修改word版)

一:十进制数转换成二进制数。 随便拿出一个十进制数“39”,(假如你今天买书用了39 元)先来把这个39 转换成2 进制数。 商余数步数39/2= 19 1 第一步 19/2= 9 1 (这里的19 是第一步运算结果的商)第二步 9/2= 4 1 (这里的9 是第二步运算结果的商)第三步 4/2= 2 0 (这里的4 是第三步运算结果的商)第四步 2/2= 1 0 (这里的2 是第四步运算结果的商)第五步 1/2= 0 1 (这里的1 是第五步运算结果的商)第六步 那么十进制数39 转换成2 进制数就是100111. 既39(10)=100111(2) 解析一:1. 当要求把一个10 进制数转换成2 进制数的时候,就用那个数一直除以2 得到商和余数。 2. 用上一步运算结果的商在来除以2,再来得到商和余数。 3. 就这样,一直用上一步的商来除以2,得到商和余数!那么什么时候停止呢? 4. 请看上述运算图,第六步的运算过程是用1 除以2.得到的商是0,余数是1. 那么请你记住,记好了啊共2 点。A: 当运算到商为“0”的时候,就不用运算了。B:1/2 的商为“0”余数为“1”。这个你要死记住,答案并不是0.5!答案就是商为“0”余数为“1”。你不用去思考为什么,记好了就行了! 5. 在上述图中你会清晰的看到每一步运算结果的余数,你倒着把它们写下来就是“100111”了。那么这个就是结果了。 6. 在上述图中符号“/”代表“除以”。 二:十进制数转换成八进制数。 随便拿出一个十进制数“358”,(假如你今天买彩票中了358 元)。358 是我们现实生活中所用10 进制表达出来的一个数值,转换成八进制数十多少?

进制之间转换(含小数部分)

二、八、十、十六之间的转换 1、十进制与二进制之间的转换 (1)十进制转换为二进制,分为整数部分和小数部分 ①整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。下面举例: 例:将十进制的168转换为二进制 得出结果将十进制的168转换为二进制,(10101000)2 分析:第一步,将168除以2,商84,余数为0。 第二步,将商84除以2,商42余数为0。 第三步,将商42除以2,商21余数为0。 第四步,将商21除以2,商10余数为1。 第五步,将商10除以2,商5余数为0。 第六步,将商5除以2,商2余数为1。 第七步,将商2除以2,商1余数为0。 第八步,将商1除以2,商0余数为1。 第九步,读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,即10101000

(2)小数部分 方法:乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分 为零为止。如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。换句话说就是0舍1入。读数要从前面的整数读到后面的整数,下面举例: 例1:将0.125换算为二进制 得出结果:将0.125换算为二进制(0.001)2 分析:第一步,将0.125乘以2,得0.25,则整数部分为0,小数部分为0.25; 第二步, 将小数部分0.25乘以2,得0.5,则整数部分为0,小数部分为0.5; 第三步, 将小数部分0.5乘以2,得1.0,则整数部分为1,小数部分为0.0; 第四步,读数,从第一位读起,读到最后一位,即为0.001。 例2,将0.45转换为二进制(保留到小数点第四位)

计算机各种进制转换

6.1 为什么需要八进制和十六进制? 编程中,我们常用的还是10进制……必竟C/C++是高级语言。 比如: int a = 100,b = 99。 不过,因为数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决问题。 但,二进制数太长了。比如int 类型占用4个字节,32位。比如100,用int类型的二进制数表达将是: 0000 0000 0000 0000 0110 0100 面对这么长的数进行思考或操作,没有人会喜欢。因此,C,C++ 没有提供在代码直接写二进制数的方法。 用16进制或8进制可以解决这个问题。因为,进制越大,数的表达长度也就越短。不过,为什么偏偏是16或8进制,而不其它的,诸如9或20进制呢? 2、8、16,分别是2的1次方,3次方,4次方。这一点使得三种进制之间可以非常直接地互相转换。8进制或16进制缩短了二进制数,但保持了二进制数的表达特点。在下面的关于进制转换的课程中,你可以发现这一点。 6.2 二、八、十六进制数转换到十进制数 6.2.1 二进制数转换为十进制数 二进制数第0位的权值是2的0次方,第1位的权值是2的1次方…… 所以,设有一个二进制数:0110 0100,转换为10进制为: 下面是竖式: 0110 0100 换算成十进制 第0位 0 * 20 = 0 第1位 0 * 21 = 0 第2位 1 * 22 = 4 第3位 0 * 23 = 0

第4位 0 * 24 = 0 第5位 1 * 25 = 32 第6位 1 * 26 = 64 第7位 0 * 27 = 0 + --------------------------- 100 用横式计算为: 0 * 20 + 0 * 21 + 1 * 22 + 1 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0 * 27 = 100 0乘以多少都是0,所以我们也可以直接跳过值为0的位: 1 * 2 2 + 1 * 2 3 + 1 * 25 + 1 * 26 = 100 6.2.2 八进制数转换为十进制数 八进制就是逢8进1。 八进制数采用 0~7这八数来表达一个数。 八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8的2次方…… 所以,设有一个八进制数:1507,转换为十进制为: 用竖式表示: 1507换算成十进制。 第0位 7 * 80 = 7 第1位 0 * 81 = 0 第2位 5 * 82 = 320 第3位 1 * 83 = 512 + -------------------------- 839 同样,我们也可以用横式直接计算: 7 * 80 + 0 * 81 + 5 * 82 + 1 * 83 = 839 结果是,八进制数 1507 转换成十进制数为 839

各种进制之间的转换方法.docx

各种进制之间的转换方法 ⑴二进制 B 转换成八进制 Q:以小数点为分界线,整数部分从低位到高位,小数部分从高位到低位, 每 3 位二进制数为一组,不足 3 位的,小数部分在低位补0,整数部分在高位补0,然后用 1 位八进制的数字来表示,采用八进制数书写的二进制数,位数减少到原来的1/3 。 例:◆二进制数转换成八进制数:= 110 110 .101 100B ↓↓↓↓ 6 6. 5 4 = ◆八进制数转换成二进制数: 36. 2 4Q ↓↓↓↓ 011 110.010 100 = ◆八进制数和二进制数对应关系表 八进制 Q01234567 二进制 B000001010011100101110111 ⑵二进制数 B 转换成十六进制数 H:以小数点为分界线,整数部分从低位到高位,小数部分从高位到 低位,每 4 位二进制数为一组,不足 4 位的,小数部分在低位补 0,整数部分在高位补 0,然后用 1位十六进制的数字来表示,采用十六进制数书写的二进制数,位数可以减少到原来的1/4 。 例:◆二进制数转换成十六进制数: . 100111B = 1011 0101 1010.1001 1100B ↓↓↓↓↓ B5A.9 C = 5A ◆十六进制数转换成二进制数: = A B. F EH ↓↓↓↓ 1010 1011. 1111 1110 =. 1111111B ◆十六进制数、十进制数和二进制数对应关系表 十六进制 H0123456789A B C D E F 十进制 D0123456789101112131415二进制 B0000000100100011010001010110011110001001101010111100110111101111⑶八进制数 Q转换成十六进制数H:八进制数 Q和十六进制数 H 的转换要通过二进制数 B 来实现,即 先把八进制数Q转换成二进制数B,再转换成十六进制数H。 例:◆八进制数转换成十六进制数: = 111 100 000 010. 100101B =. 100101B = 1111 0000 0010.1001 0100B = F 02.9 4H = ◆十六进制数转换成八进制数: =0001 1011 . 1110B = = 011 011.111B = 33.7Q = ⑷二进制数 B 转换成十进制数D:利用二进制数 B 按权展开成多项式和的表达式,取基数为2,逐项 相加,其和就是相应的十进制数。

进制转换方法总结

信息的编码 再问学生计算机存储信息是不是都采用了二进制数二进制也存在缺点,二进制都用0和1, 而且位数太多, 不易理解, 也易出错。为描述方便常用八、十进制,十六进制数表示二进制数 在微机中,一般在数字的后面,用特定字母表示该数的进制。 十进制:日常生活中最常见的是十进制数,用十个不同的符号来表示:0、1、2、3、4、5、6、7、8、9。 基为:10 运算规则:逢十进一,借一当十 在十进制数的后面加大写字母D以示区别。 二进制:二进制数只有两个代码“0”和“1”,所有的数据都由它们的组合来实现。 基为:2 运算规则:“逢二进一,借一当二”的原则。 在八进制数据后加英文字母“B” 八进制:使用的符号:0、1、2、3、4、5、6、7; 运算规则:逢八进一; 基为:8 在八进制数据后加英文字母“O”, 十六进制:使用的符号:采用0~9和A、B、C、D、E、F六个英文字母一起共十六个代码。 运算规则:逢十六进一

基为:16 在十六进制数据后加英文字母“H”以示分别。 那么二进制数与八进制、十进制,十六进制数是怎么转换的呢 3、协作提高:用讲解法对二进制数与十进制数、十六进制数之间相互的转换的原理及方法(将二进制数字表示的位权值与十进制数字表示的位权值加以对比),叫几位学生到黑板上来做,其它同学在下面草稿纸上做。观察在黑板上做的同学的对错情况,要知道错,错在那里。 由N进制数转换成十进制数的基本做法是,把N进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。 各数制的权 如:十进制中,各位的权为10n-1 二进制中,各位的权为2n-1 十六进制中,各位的权为16n-1 八进制中,各位的权为8n-1 1)、二进制转换为十进制 各数制中整数部分不同位的权为“基的n-1次方(n为数值所在的位数,n的最小值取1)”,小数部分不同位的权值为“基的-n次方,从左向右,每移一位,幂次减1”。 二进制数的基数为2 例()2=()D

进制之间的相互转换

十进制转换为r进制的方法(看例子很容易理解,亲,加油~) 将十进制数转化为r进制数时,要将数的整数部分和小数部分分别进行转 换,分别按除r取余数和乘r取整数两种不同的方法来完成。 如十进制转化为二进制的方法是:对整数部分,用2去除,取其余数为转换后的二进制整数数字,直到商为0结束,且注意先得到的余数为所求结果的地位;对小数部分,用2去乘,取乘机的整数部分为转换后的二进制小数部分,注意先得到的整数为二进制小树的高位 如101.1 对整数部分 101/2=50 余1 50/2=25 余 0 25/2=12 余1 12/2=6 余0 6/2=3 余0 3/2=1 余1 1/2=0 余1 先得到的余数为结果的低位,所以整数部分的结果为 1100101 对小数部分 01*2=0.2 取整数0 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 0.4*2=0.8 0 0.8*2=1.6 1 先得到的整数为小数的高位,即为0.00011001 所以结果为1100101.000110 即101.1(十进制)=1100101.00011001(二进制) 同样,将十进制转化为八进制或十六进制时,整数部分用除以8 或16取余数处理,小数部分用乘8活16取整来处理。 266(十进制)=10A(十六进制) 266/16=16 余10(A) 16/16=1 余0 1/16=0 余1 所以266(十进制)=10A(十六进制) 0.8125(十进制)=0.64(八进制) 0.8125*8=6.5 取整数6 0.5*8=4.0 取整数4 所以0.8125(十进制)=0.64(八进制)

十进制转任意进制的通用方法

十进制转任意进制的通用方法是:除x取余倒排法(x代表进制数)。 如:将十进制数76转换成任意进制 1.转成二进制 76 / 2 0 = 38 / 2 0 = 19 / 2 (1) = 9 / 2 (1) = 4 / 2 0 = 2 / 2 0 = 1 / 2 (1) 76(10) = 1001100(2) 2.转成八进制 76 / 8 (4) = 9 / 8 (1) = 1 / 8 (1) 76(10) = 114(8) 3.转成十六进制 76 / 16 (12) = 4 / 16 (4) 76(10)=4C(16) B :二进制数。 Q :八进制数。 D :十进制数。 H :十六进制数。 对于十进制数通常不加后缀,也即十进制数后的字母 D 可省略。 ( 1 )将二进制数转换成对应的十进制数 将二进制数转换成对应的十进制数的方法是“按权展开求和”: 利用二进制数按权展开的多项式之和的表达式,取基数为 2 ,逐项相加,其和就是对应的十进制数。 例 1 :将二进制数 1011.1 转换成对应的十进制 解:1011.1B=1×2的3次方+0×2的2次方+1×2的1次方+1×2的0次方+1×2的-1次方 =8+0+2+1+0.5 =11.5D (2 )将二进制数转换为对应的八进制数 由于 1 位八进制数对应 3 位二进制数,所以二进制数转换成八进制数时,只要以小数点为界,整数部分向左,小数部分向右每 3 位分成一组,各组用对

应的 1 位八进制数字表示,即可得到对应的八进制数值。最左最右端分组不足 3 位时,可用 0 补足。 例:将 1101101.10101B 转换成对应的八进制数。 解: 所以, 1101101.10101B = 155.52Q 。 同理,用相反的方法可以将八进制数转换成对应的二进制数。 (3 )将二进制数转为对应的十六进制数 由于 1 位十六进制数对应 4 位二进制数,所以二进制数转换为十六进制时,只要以小数点为界,整数部分向左,小数部分向右每 4 位分成一组,各组用对应的 1 位十六进制数字表示,即可得到对应的十六进制数值。两端的分组不足 4 位时,用 0 补足。 例:将 1101101.10101B 转换成对应的十六进制数 解: 所以 1101101.10101B = 6D.8AH 。 同理,用相反的方法可以将十六进制数转换成对应的二进制数。 计算机中常用的数的进制主要有:二进制、八进制、十六进制,学习计算机要对其有所了解。 2进制,用两个阿拉伯数字:0、1; 8进制,用八个阿拉伯数字:0、1、2、3、4、5、6、7; 10进制,用十个阿拉伯数字:0到9; 16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这五个字母来分别表示10,11,12,13,14,15。字母不区分大小写。 以下简介各种进制之间的转换方法: 一、二进制转换十进制 例:二进制“1101100” 1101100 ←二进制数 6543210 ←排位方法 例如二进制换算十进制的算法: 1*26 + 1*25 + 0*24 + 1*23 + 1* 22 + 0*21 + 0*20 ↑ ↑ 说明:2代表进制,后面的数是次方(从右往左数,以0开始) =64+32+0+8+4+0+0

进制数之间的转换方法

一般来说,对于任意大于1的整数n,存在n进制,其特点是基数为n,逢n进一。其中最常用的是二进制、八进制和十六进制。 任意进制的数字对应的十进制值为: Kn×Bn + Kn-1×Bn-1 + …… + K1×B1 + K0×B0 + K-1×B-1 + K-2×B-2 …… + K-m×B-m 上式中,B称为数字系统的基数,Bn至B0称为数字Kn至K0的权值。 1.基本知识 十进制 基数为10,逢10进1。在十进制中,一共使用10个不同的数字符号,这些符号处于不同位置时,其权值各不相同。 二进制 基数为2,逢2进1。在二进制中,使用0和1两种符号。 八进制 基数为8,逢8进1。八进制使用8种不同的符号,它们与二进制的转换关系为:0:000 1:001 2:010 3:011 4:100 5:101 6:110 7:111 十六进制 基数为16,逢16进1。十六进制使用16种不同的符号,它们与二进制的转换关系为: 0:0000 1:0001 2:0010 3:0011 4:0100 5:0101 6:0110 7:0111 8:1000 9:1001 A:1010 B:1011 C:1100 D:1101 E:1110 F:1111 二进制数的运算 算术运算:加法 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10(向高位进1) 算术运算:减法 0 ? 0 = 0 0 ? 1 = 1(向高位借1)1 ? 0 = 1 1 - 1 = 0 逻辑运算:或(∨) 0 ∨0 = 0 0 ∨1 = 1 1 ∨0 = 1 1 ∨1 = 1 逻辑运算:与(∧) 0 ∧0 = 0 0 ∧1 = 0 1 ∧0 = 0 1 ∧1 = 1 逻辑运算:取反 0取反为1 1取反为0 注意:算术运算会发生进位、借位,逻辑运算则按位独立进行,不发生位与位之间的关系,其中,0表示逻辑假,1表示逻辑真。

python各进制之间转换

python各进制之间转换 # global definition # base = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F] base = [str(x) for x in range(10)] + [ chr(x) for x in range(ord('A'),ord('A')+6)] # 二进制to 十进制: int(str,n=10) def bin2dec(string_num): return str(int(string_num, 2)) # 十六进制to 十进制 def hex2dec(string_num): return str(int(string_num.upper(), 16)) # 十进制to 二进制: bin() def dec2bin(string_num): num = int(string_num) mid = [] while True: if num == 0: break num,rem = divmod(num, 2) mid.append(base[rem]) return ''.join([str(x) for x in mid[::-1]]) # 十进制to 八进制: oct()

# 十进制to 十六进制: hex() def dec2hex(string_num): num = int(string_num) mid = [] while True: if num == 0: break num,rem = divmod(num, 16) mid.append(base[rem]) return ''.join([str(x) for x in mid[::-1]]) # 十六进制to 二进制: bin(int(str,16)) def hex2bin(string_num): return dec2bin(hex2dec(string_num.upper())) # 二进制to 十六进制: hex(int(str,2)) def bin2hex(string_num): return dec2hex(bin2dec(string_num))

二、八、十、十六进制数之间的转换方法

6.2 二、八、十六进制数转换到十进制数 6.2.1 二进制数转换为十进制数 二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……所以,设有一个二进制数:0110 0100,转换为10进制为: 下面是竖式: 0110 0100 换算成十进制 第0位0 * 20 = 0 第1位0 * 21 = 0 第2位1 * 22 = 4 第3位0 * 23 = 0 第4位0 * 24 = 0 第5位1 * 25 = 32 第6位1 * 26 = 64 第7位0 * 27 = 0 + --------------------------- 100 用横式计算为: 0 * 20 + 0 * 21 + 1 * 22 + 1 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0 * 27 = 100 0乘以多少都是0,所以我们也可以直接跳过值为0的位:

1 * 2 2 + 1 * 2 3 + 1 * 25 + 1 * 26 = 100 6.2.2 八进制数转换为十进制数 八进制就是逢8进1。 八进制数采用0~7这八数来表达一个数。 八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8的2次方……所以,设有一个八进制数:1507,转换为十进制为: 用竖式表示: 1507换算成十进制。 第0位7 * 80 = 7 第1位0 * 81 = 0 第2位5 * 82 = 320 第3位1 * 83 = 512 + -------------------------- 839 同样,我们也可以用横式直接计算: 7 * 80 + 0 * 81 + 5 * 82 + 1 * 83 = 839 结果是,八进制数1507 转换成十进制数为839 6.2.3 八进制数的表达方法

二进制八进制十进制十六进制之间转换含小数部分

二进制八进制十进制十六进制之间转换含小数 部分 公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]

二进制、八进制、十进制、十六进制之间转换 一、十进制与二进制之间的转换 (1)十进制转换为二进制,分为整数部分和小数部分 ①整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。下面举例: 例:将十进制的168转换为二进制 得出结果将十进制的168转换为二进制,()2 分析:第一步,将168除以2,商84,余数为0。 第二步,将商84除以2,商42余数为0。 第三步,将商42除以2,商21余数为0。 第四步,将商21除以2,商10余数为1。 第五步,将商10除以2,商5余数为0。 第六步,将商5除以2,商2余数为1。 第七步,将商2除以2,商1余数为0。 第八步,将商1除以2,商0余数为1。 第九步,读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,即 (2)小数部分 方法:乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分 为零为止。如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。换句话说就是0舍1入。读数要从前面的整数读到后面的整数,下面举例: 例1:将换算为二进制 得出结果:将换算为二进制()2 分析:第一步,将乘以2,得,则整数部分为0,小数部分为; 第二步, 将小数部分乘以2,得,则整数部分为0,小数部分为; 第三步, 将小数部分乘以2,得,则整数部分为1,小数部分为; 第四步,读数,从第一位读起,读到最后一位,即为。 例2,将转换为二进制(保留到小数点第四位)

数的进制之间的转换(全面)

数的进制

典例评析 例1 将139(10)化成二进制(短除法)(十进制与二进制的互换) 总结:十进制转换为任意进制都可用短除法(整数部分---- 除基数后取余,逆排) 练习: (96.75)10 =()8 (3952)10 =()16 例2 将101101(2)改成十进制数。(二进制与十进制的互换) 总结:对于任意一个x进制数a m a m-1a m-2…a2a1(2)改写成十进制数,都有如下的方法:a m a m-1a m-2…a2a1(2)=a m×n m-1+a m-1×x m-2+…a2×x1+a1×x0 练习: 1.二进制的1000001相当十进制的______,二进制的100.001可以表示为______。 2.八进制的100化为十进制为______,十六进制的100化为十进制为______。

例3 计算:10110(2)+1010(2)。 例4 计算1101101(2)-1011110(2),并要求验算。 例5 计算:11101(2)×11(2) 注意:二进制数的乘法计算,同整数乘法一样,也可以列竖式计算,在计算过程当中要注意两点:(1)1乘任何数仍得原数;(2)0乘任何数都得零。。 例6 计算:1001011(2)÷1111(2)。 补充:二进制八进制十六进制之间相互转换的方法 由于8,16与2是指数关系,转换方法简单一些。 以小数点为界,二进制每3个数字一组表示一个八进制数,二进制每4个数字一组表示一个十六进制数。这样就简化了公式:首先分组按照公式转换,再把得到的数排列在一起。 例1:二进制数与八进制数间的相互转换 1.( 1111101 ) 2 = ( )8 2.(175)8=()2

各种进制转换方法

各种进制转换方法 一般计数都采用进位计数,其特点是: (1)逢N进一,N是每种进位计数制表示一位数所需要的符号数目为基数。 (2)采用位置表示法,处在不同位置的数字所代表的值不同,而在固定位置上单位数字表示的值是确定的,这个固定位上的值称为权。在计算机中:D7D 6D5D4D3D2D1D0只有两种0和18421 二)、数制转换 不同进位计数制之间的转换原则:不同进位计数制之间的转换是根据两个有理数如相等,则两数的整数和分数部分一定分别相等的原则进行的。也就是说,若转换前两数相等,转换后仍必须相等。有四进制 十进制:有10个基数:0~~9,逢十进一 二进制:有2个基数:0~~1,逢二进一 八进制:有8个基数:0~~7,逢八进一 十六进制:有16个基数:0~~9,A,B,C,D,E,F(A=10,B=11,C=12,D =13,E=14,F=15),逢十六进一 1、数的进位记数法 N=a n-1*p n-1+a n-2*p n-2+…+a2*p2+a1*p1+a0*p0 2、十进制数与P进制数之间的转换 ①十进制转换成二进制:十进制整数转换成二进制整数通常采用除2取余法,小数部分乘2取整法。例如,将(30)10转换成二进制数。将(30)10转换成二进制数 2|30….0----最右位

215 (1) 27 (1) 23 (1) 1….1----最左位 ∴(30)10=(11110)2 将(30)10转换成八、十六进制数 8|30……6------最右位 3------最左位 ∴(30)10=(36)8 16|30…14(E)----最右位 1----最左位 ∴(30)10=(1E)16 3、将P进制数转换为十进制数 把一个二进制转换成十进制采用方法:把这个二进制的最后一位乘上20,倒数第二位乘上21,……,一直到最高位乘上2n,然后将各项乘积相加的结果就它的十进制表达式。 把二进制11110转换为十进制 (11110)2=1*24+1*23+1*22+1*21+0*20= =16+8+4+2+0 =(30)10

常见计算机各进制间转换方法汇总

进制转换方法汇总 计算机中常用的数的进制主要有:二进制、八进制、十六进制,学习计算机要对其有所了解。 2进制,用两个阿拉伯数字:0、1; 8进制,用八个阿拉伯数字:0、1、2、3、4、5、6、7; 10进制,用十个阿拉伯数字:0到9; 16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这五个字母来分别表示10,11,12,13,14,15。字母不区分大小写。 以下简介各种进制之间的转换方法: 一、二进制转换十进制 例:二进制 “1101100” 1101100 ←二进制数 6543210 ←排位方法 例如二进制换算十进制的算法: 1*26 + 1*25 + 0*24 + 1*23 + 1* 22 + 0*21 + 0*20 ↑↑ 说明:2代表进制,后面的数是次方(从右往左数,以0开始) =64+32+0+8+4+0+0 =108 二、二进制换算八进制 例:二进制的“10110111011” 换八进制时,从右到左,三位一组,不够补0,即成了: 010 110 111 011 然后每组中的3个数分别对应4、2、1的状态,然后将为状态为1的相加,如:010 = 2 110 = 4+2 = 6 111 = 4+2+1 = 7 011 = 2+1 = 3 结果为:2673 三、二进制转换十六进制 十六进制换二进制的方法也类似,只要每组4位,分别对应8、4、2、1就行了,如分解为: 0101 1011 1011 运算为: 0101 = 4+1 = 5 1011 = 8+2+1 = 11(由于10为A,所以11即B) 1011 = 8+2+1 = 11(由于10为A,所以11即B) 结果为:5BB

二进制与十进制间的转换方法(图文教程)

二进制与十进制间的转换方法(图文教程) 各位读友大家好!你有你的木棉,我有我的文章,为了你的木棉,应读我的文章!若为比翼双飞鸟,定是人间有情人!若读此篇优秀文,必成天上比翼鸟! 二进制与十进制间的转换方法(图文教程)一、正整数的十进制转换二进制:要点:除二取余,倒序排列解释:将一个十进制数除以二,得到的商再除以二,依此类推直到商等于一或零时为止,倒取将除得的余数,即换算为二进制数的结果例如把52换算成二进制数,计算结果如图:52除以2得到的余数依次为:0、0、1、0、1、1,倒序排列,所以52对应的二进制数就是110100。由于计算机内部表示数的字节单位都是定长的,以2的幂次展开,或者8位,或者16位,或者32位....。于是,一个二进制数用计算机表示时,位数不足2的幂次时,高位上要补足若干个0。本文都以8位为例。那么:(52)10=(00110100)2二、负整数转换为二进制要点:取反加一解释:将该负整数对应的正整数先转换成二进制,然后对其“取补”,再对取补后的结果加1即可例如要把-52换算成二进制:1.先取得52的二进制:001101002.对所得到的二进制数取反:110010113.将取反后的数值加一即可:11001100即:(-52)10=(11001100)2三、小数转换为二进制要点:乘二取整,正序排列解释:对被转换的小数乘以2,取其整数部分(0或1)作为二进制小数部分,取其小数部分,再乘以2,又取其整数部分作为二进制小数部分,然后取小数部分,再乘以2,

直到小数部分为0或者已经去到了足够位数。每次取的整数部分,按先后次序排列,就构成了二进制小数的序列例如把0.2转换为二进制,转换过程如图:0.2乘以2,取整后小数部分再乘以2,运算4次后得到的整数部分依次为0、0、1、1,结果又变成了0.2,若果0.2再乘以2后会循环刚开始的4次运算,所以0.2转换二进制后将是0011的循环,即:(0.2)10=(0.0011 0011 0011 .....)2循环的书写方法为在循环序列的第一位和最后一位分别加一个点标注四、二进制转换为十进制:整数二进制用数值乘以2的幂次依次相加,小数二进制用数值乘以2的负幂次然后依次相加!比如将二进制110转换为十进制:首先补齐位数,00000110,首位为0,则为正整数,那么将二进制中的三位数分别于下边对应的值相乘后相加得到的值为换算为十进制的结果如果二进制数补足位数之后首位为1,那么其对应的整数为负,那么需要先取反然后再换算比如11111001,首位为1,那么需要先对其取反,即:-0000011000000110,对应的十进制为6,因此11111001对应的十进制即为-6换算公式可表示为:11111001=-00000110 =-6如果将二进制0.110转换为十进制:将二进制中的三位数分别于下边对应的值相乘后相加得到的值为换算为十进制的结果 各位读友大家好!你有你的木棉,我有我的文章,为了你的木棉,应读我的文章!若为比翼双飞鸟,定是人间有情人!若读此篇优秀文,必成天上比翼鸟!

相关文档
最新文档