计算机进制转换

计算机进制转换
计算机进制转换

计算机进制间的转换

计算机中常用的数的进制主要有:二进制、八进制、十六进制,学习计算机要对其有所了解。

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。字母不区分大小写。

以下简介各种进制之间的转换方法:

一、R进制转十进制:

基数为R的数字,只要将各位数字与它的权相乘,其积相加,所得的和就是十进制。

例如:

二进制转换十进制

例:二进制“1101101.0101”

1101101. 0 1 0 1 ←二进制数

6543210.-1-2-3-4 ←排位方法

二进制换算十进制的算法: 说明:2代表进制,后面的数是次方(从右往左数,以0开始)

=1×26+1×25+0×24+1×23+1×22+0×21+1×20+0×21-+1×22-+0×23-+1×24-

=64+32+0+8+4+0+1+ 0.5+0.25+0.125+0.0625

=109.3125

八进制转十进制:

(123.45)

8

=1×82+2×81+3×80+4×81-+5×82-

=64+16+3+0.5+0.078125

=(83.578125)

10

十六进制转十进制:

(2A3B4F)=2×165+10×164+3×163+11×162+4×161+15×160

=(2767695)10

二、二进制换算八进制

例:二进制的“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

三、二进制转换十六进制

十六进制换二进制的方法也类似,只要每组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

四、二进制数转换为十进制数

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

所以,设有一个二进制数:0110 0100,转换为10进制为:

计算:0 * 20 + 0 * 21 + 1 * 22 + 1 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0 * 27 = 100

五、八进制数转换为十进制数

八进制就是逢8进1。

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

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

所以,设有一个八进制数:1507,转换为十进制为:

计算:7 * 80 + 0 * 81 + 5 * 82 + 1 * 83 = 839

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

六、十六进制转换十进制

例:2AF5换算成10进制

直接计算就是:5 * 160 + F * 161 + A * 162 + 2 * 163 = 10997

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

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

假设有人问你,十进数1234 为什么是一千二百三十四?你尽可以给他这么一个算式:1234 = 1 * 103 + 2 * 102 + 3 * 101 + 4 * 100

十进制D,二进制B,八进制O,十六进制H

125.625分成125和0.625

先看整数部分125,用长除法,125除2得62(余1),62除2得31(余0),31除2得15(余1),15除2得7(余1),7除2得3(余1),3除2得1(余1),1除2得0(余1)。除到0结束,把余数倒着写出来1111 101,所以125D=1111101B

再看小数部分0.625,用长乘法,0.625乘2得1.250(进1),0.250乘2得0.5(进0),0.5乘2得1.0(进1)。乘到1结束(如果一直乘也得不到1,就是无限循环),把进位数顺序写出来101,所以0.625D=0.101B

加起来125.625D=1111101.101B

八进制同理,长除法的除数是8,余数0-7,长乘法的乘数是8,进位数是0-7

十六进制亦然,长除法除数16,余数0123456789ABCDEF(也就是0-15,但9以后用A-F表示),长乘法乘数是16,进位数0-F。

十进制125.625转换2进制、8进制

125.625(D)=1111101.101(B)=175.5(O)

十进制69.625转换2进制16进制8进制

69.625(D)=1000101.101(B)=45(H)=105.5(O)

十进制127转换同上

127(D)=1111111(B)=7F(H)=177(O)

十六进制10A转换10进制

10A(H)=266(D)

八进制670转换10进制

670(O)=440(D)

二进制11111111000011转换10进制

11111111000011(B)=16323(D)

1、小数的二进制表示问题

首先我们要搞清楚下面两个问题:

(1) 十进制整数如何转化为二进制数

算法很简单。举个例子,11表示成二进制数:

11/2=5 余 1

5/2=2 余 1

2/2=1 余 0

1/2=0 余 1

0结束 11二进制表示为(从下往上):1011

这里提一点:只要遇到除以后的结果为0了就结束了,大家想一想,所有的整数除以2是不是一定能够最终得到0。换句话说,所有的整数转变为二进制数的算法会不会无限循环下去呢?绝对不会,整数永远可以用二进制精确表示,但小数就不一定了。

(2) 十进制小数如何转化为二进制数

算法是乘以2直到没有了小数为止。举个例子,0.9表示成二进制数

0.9*2=1.8 取整数部分 1

0.8(1.8的小数部分)*2=1.6 取整数部分 1

0.6*2=1.2 取整数部分 1

0.2*2=0.4 取整数部分 0

0.8*2=1.6 取整数部分 1

0.6*2=1.2 取整数部分 0

......... 0.9二进制表示为(从上往下): 1100100100100......

注意:上面的计算过程循环了,也就是说*2永远不可能消灭小数部分,这样算法将无限下去。很显然,小数的二进制表示有时是不可能精确的。其实道理很简单,十进制系统中能不能准确表示出1/3呢?同样二进制系统也无法准确表示1/10。这也就解释了为什么浮点型减法出现了"减不尽"的精度丢失问题。

计算机二进制转换基础教程

发表于2010-03-24 由项学成

一、二进制介绍

1、进制是指逢几进1,10进制就是逢10进1,2进制就是逢2进1。

2进制数使用(0,1)2个基本符号

8进制数使用(0,1,2,3,4,5,6,7)8个基本符号

10进制数使用(0,1,2,3,4,5,6,7,8,9)10个基本符号

16进制数使用(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)16个基本符号

2、生活中常见的进制有10进制,7进制、24进制等,而计算机能直接识别和处理的只有2进制,无论是数字、文字、声音、图片等都必须转换成2进制后,计算机才能进行计算、处理、存储和传输。

3、为了方便表达,我们可以将2进制数用B代表,8进制数用O代表,10进制数用D代表,16进制数用H代表。

4、由于2进制数太长,不便于书写、阅读和记忆,所以使用8进制或16进制来等价的表示2进制。

二、2进制与8进制、16进制的对应关系

1、2进制与8进制的对应关系:

0=000 1=001 2=010 3=011 4=100 5=101 6=110 7=111

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

三、进制间相互转换

1、10进制转换成2进制

10进制数转换成其它进制的方法是“除基取余”,如2进制的基数是2,8进制的基数就是8。小数部分的算法是乘2取整法,拿小数部分不断乘以2,直到小数为0(有时小数永远不可能为0)或得到所要的精度为止。

例1:将10进制数55.875转换成2进制数

整数部分:

55/2=27 余1 低位

27/2=13 余1

13/2=6 余1

6/2=3 余0

3/2=1 余1

1/2=0 余1 高位

答案:(110111)B

小数部分:

0.875*2=1.75 取1

0.75*2=1.5 取1

0.5*2=1 取1

答案:(0.111)B

最终答案:(110111.111)B

0.632*2=1.264 取1

0.264*2=0.582 取0

0.582*2=1.056 取1

0.056*2=0.112 取0

此例是无穷小数,答案为≈(1010)B

2、2进制转换成10进制

2进制数转换成10进制的方法是:“按权展开”例:将2进数110111. 111转换成10进制

整数部分:

1*25+1*24+0*23+1*22+1*21+1*20

32+16+0+4+2+1=55

小数部分:

1*2-1+1*2-2+1*2-3

0.5+0.25+0.125=0.875

答案:(55.875)D

3、10进制转换成8进制

例:将10进制数685.635转换成8进制数

整数部分:

685/8=85 余5

85/8=10 余5

10/8=1 余2

0.635*8=5.08 取5

0.08*8=0.64 取0

0.64*8=5.12 取5

0.12*8=0.96 取0

答案:≈(1255.5050)O

4、8进制转换成10进制

例:将8进制数1255.5050转换成10进制整数部分:

1*83+2*82+5*81+5*80

512+128+40+5=685

小数部分:

5*8-1+0*8-2+5*8-3+0*2-4

0.625+0.009765625≈0.635(四舍五入)答案(685.635)D

5、10进制转换成16进制

例:将10进制数5214.9856转换成16进制整数部分:

5214/16=325 余E

325/16=20 余5

20/16=1 余4

0.9856*16=15.7696 取F

0.7696*16=12.3136 取C

0.3136*16=5.0176 取5

0.0176*16=0.2816 取0

答案:(145E.FC50)H

6、16进制转换成10进制

例:将16进制数145E.FC50转换成10进制

整数部分:

1*163+4*162+5*161+E*160

4096+1024+80+14=5214

小数部分:

F*16-1+C*16-2+5*16-3+0*16-4

0.9375+0.046875+0.001220703≈0.9856(四舍五入)

答案:(5214.9856)D

7、2进制转换成8进制

2进制转换成8进制的方法是,将整数部分以低位向高位方向,每3位数以等值的8进制数来替换,不足3位的前面补0,小数部分以高位向低位方向,每3位数以等值的8进制来替换,不足3位的后面补0。

例:将2进制数11101110.110111转换成8进制数

整数部分:

从低位到高位,3位1转换

101=5

011=3

得出答案356

小数部分:

从高位到低位,3位1转换

110=6

111=7

得出答案是67

最终答案(356.67)O

8、8进制转换成2进制

8进制转换成2进制的方法是,将每一位8进制数字替换成等值的3位2进制数即可。例:将8进制数356.67转换成2进制数

整数部分:

3=011

5=101

6=110

得出答案:11101110

小数部分:

6=110

7=111

得出答案:110111

9、2进制转换成16进制

2进制转换成16进制的方法是,将整数部分以低位向高位方向,每4位数以等值的16进制数来替换,不足4位的前面补0,小数部分以高位向低位方向,每4位数以等值的16进制来替换,不足4位的后面补0。

例:将2进制数1010101110.110111转换成16进制

整数部分:

从低位到高位,4位1转换

1110=E

1010=A

0010=2

得出答案:2AE

小数部分:

从高位到低位,4位1转换

1101=D

1100=C

得出答案:DC

最终答案(2AE.DC)H

10、16进制转换成2进制

16进制转换成2进制的方法是,将每一位16进制数字替换成等值的4位2进制数即可。

例:将16进制数2AE.DC转换成2进制数

整数部分:

2=0010

E=1110

答案:1010101110

小数部分:

D=1101

C=1100

答案:11011100

最终答案(1010101110.110111)B

后面的2个0就省略了

11、8进制和16进制相互转换

可以先将其转换成2进制,然后再相互转换。附:关于负次方的算法

2的2次方=4,2的负2次方就是1/4=0.25。-1 0.5

-2 0.25

-3 0.125

-4 0.0625

-5 0.03125

-6 0.015625

-7 0.0078125

-8 0.00390625

-9 0.001953125

-10 0.000976563

计算机《数制与编码-进制转换》公开课教案 (2)

课时安排:一课时 教学方法:讲授法 教学目的:1、熟悉数制的概念;2、掌握位权表示法; 3、掌握各数制之间的转换方法。 教学重点:进制、基数、位权的概念 教学难点:二进制—十进制间相互转换 教学过程: 一、师生问好,考勤 二、复习旧识,导入新课 通过学习计算机系统组成,我们已经知道,人与计算机进行信息交换通常使用程序设计语言,程序设计语言经历了三个阶段:机器语言、汇编语言和高级语言。机器语言是机器指令序列,机器指令是一串0和1组成的二进制编码,是唯一能被计算机识别的语言。计算机的语言和我们人类的语言是不一样的。所以当我们对计算机发出一个命令,这些命令必须要经过数字化编码后才能传送、存储和处理。那么要了解计算机是如何将我们发出的信息转换成数字编码之前,我们必须先了解掌握各种数制以及数制的转换。 三、新课讲解 (一)数制 1.进制 按进位的原则进行记数的方法叫做进位记数制。“进位记数制”简称为“数制”或“进制”。我们平时用的最多的就是十进制了,那么,大家想一下,还有没有其他的进制呢?比如,一年12个月,十二进制;古代1斤=16两,逢十六进一,就是十六进制;1公斤=2斤,1时辰=2小时,逢二进一,就是二进制。由此也可以推断出,每一种进制

的进位都遵循一个规则,那就是N进制,逢N进一。这里的N叫做基数。 2.基数 所谓“基数”就是数制中表示数值所需要的数字的总数。十进制中用0—9来表示数值,一共有10个不同的字符;二进制中用0、1来表示数值,一共2个字符;十六进制中0—9、A、B、C、D、E、F,一共有16个不同的字符。为了区别不同的进制数,常在不同进制数字后加一字母表示:十进制D、二进制B、十六进制H。 3.位权 “位权”是指每个数位被赋以一定的权值。位权是基数的若干次幂。采用进位计数制进行计数,表示数值大小的数码与它在数中所处的位置有关。 (二)使用二进制的原因 计算机内部一律采用二进制表示数据信息,而大家常用的则是十进制,有时为了方便还使用八进制或十六进制。采用二进制的原因: ①二进制码在物理上最容易实现。计算机由逻辑电路组成的,逻辑电路通常只有两个状态。例如,电压的高与低、脉冲的有与无、开关的接通与断开等。这两种状态正好用来表示二进制数码“1”和“0”。若是采用十进制,则需表示十个数码,这是困难的。 ②运算简单。③逻辑性强。 (三)数制转换 在计算机进行数据处理时首先把输入的十进制数转换成计算机所能接受的二进制数;计算机运行结束后,再把二进制数转换成人们所习惯的十进制数输出。这种将数由一种数制转换成另一种数制称为数制间的转换。

各种进制之间转换方法

各进制转换方法(转载) 一、计算机中数的表示: 首先,要搞清楚下面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.十进制数100.625等值于二进制数()。 A.1001100.101 B. 1100100.101 C. 1100100.011 D. 1001100.11 E. 1001100.01 2. 以下二进制数的值与十进制数2 3.456 的值最接近的是()。 A.10111.0101 B. 11011.1111 C. 11011.0111 D. 10111.0111 E. 10111.1111 3.与十进制数28.5625相等的四进制数是() A.123.21 B.131.22 C.130.22 D.130.21 E.130.20 4. 十进制数2003等值于二进制数()。 A)010******* B)10000011 C)110000111 D)11111010011 E)1111010011 5、运算式(2047)10-(3FF)16+(2000)8的结果是( ) A)(2048)10 B)(2049)10 C)(3746)8 D)(1AF7)16 6.十进制书11/128可用二进制数码序列表示为:(D )。 A)1011/1000000 B)1011/100000000 C)0.001011 D)0.0001011 7.在19+33=52等式中,每个数可能的进制是()。 A.十进制、十六进制、八进制 B.十六进制、十进制、八进制 C.十六进制、八进制、十进制 D.十进制、八进制、十六进制 8. 与十进制数1770.625 对应的八进制数是()。 A. 3352.5 B. 3350.5 C. 3352.1161 D. 3350.1151 E. 前 4 个答案都不对

计算机考试中各种进制转换的计算方法

二进制数第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 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 2AF5换算成10进制: 第0位: 5 * 160 = 5 第1位: F * 161 = 240 第2位: A * 162 = 2560 第3位: 2 * 163 = 8192 +

各种进制之间转换方法

各进制转换方法(转载)一、计算机中数的表示: 首先,要搞清楚下面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. 十进制数257转换成二进制数为_____。 A) 11101110 B) 11111111 C) 100000001 D) 100000011 2. 十进制数93转换成二进制数为_____。 A) 1110111 B) 1110101 C) 1010111 D) 1011101 3. 十进制数56转换成二进制数为_____。 A) 111000 B) 111001 C) 101111 D) 110110 4. 十进制数247转换成二进制数为_____。 A) 11100110 B) 11101110 C) 11110111 D) 11100111 5. 十进制数178转换成二进制数为_____。 A) 10111101 B) 10110010 C) 11100101 D) 11100001 6. 十进制数169转换成二进制数为_____。 A) 10101001 B) 10110111 C) 11010000 D) 11010001 7. 十进制数194转换成二进制数为_____。 A) 11011001 B) 10110111 C) 11000010 D) 10011111 8. 十进制数138转换成二进制数为_____。 A) 10010001 B) 10010001 C) 11000010 D) 10001010 9. 二进制数1011001转化为十进制数是_____。 A) 83 B) 81 C) 89 D) 79 10. 二进制数10110010转化为十进制数是_____。 A) 170 B) 178 C) 186 D) 174 11. 二进制数11010101转化为十进制数是_____。 A) 209 B) 223 C) 197 D) 213 12. 二进制数11101110转化为十进制数是_____。 A) 238 B) 230 C) 222 D) 206 13. 二进制数1011.001转化为十进制数是_____。 A) 11.25 B) 10.25 C) 11.125 D) 10.125 14. 二进制数11011.11转化为十进制数是_____。 A) 27.03 B) 27.75 C) 25.03 D) 25.75 15. 二进制数11001.101转化为十进制数是_____。 A) 25.05 B) 20.05 C) 20.625 D) 25.625 16. 二进制数11110.011转化为十进制数是_____。 A) 30.375 B) 30.03 C) 34.375 D) 34.03 17. 八进制数25363转化为二进制数是_____。 A) 101011111011 B) 10101011110011 C) 1010101111011 D) 1010111111011 18. 八进制数14071转化为二进制数是_____。 A) 110001111 B) 11000111001 C) 1100000111001 D) 11000001111 19. 八进制数253.24转化为二进制数是_____。 A) 10101011.0101 B) 1010111.10100 C) 10101011.10100 D) 1010111.010100 20. 八进制数112.03转化为二进制数是_____。

计算机进制转换公式

计算机进制转换公式 (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 )将十进制数转换成对应的二进制数 将十进制数转换为对应的二进制数的方法是: 对于整数部分,用被除数反复除以2 ,除第一次外,每次除以2 均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。对于小数部分,采用连续乘以基数 2 ,并依次取出的整数部分,直至结果的小数部分为0 为止。故该法称“ 乘基取整法” 。 例:将十进制117.625D 转换成二进制数 解:整数部分:“除以2 取余,逆序输出” 小数部分: “乘以2 取整,顺序输出” 所以117.625D =1110101.101B 特别提示:将十进制数转换成其他进制数方法与次上述方法类似。 (3 )将二进制数转换为对应的八进制数 由于1 位八进制数对应3 位二进制数,所以二进制数转换成八进制数时,只要以小数点为界,整数部分向左,小数部分向右每 3 位分成一组,各组用对应的 1 位八进制数字表示,即可得到对应的八进制数值。最左最右端分组不足 3 位时,可用0 补足。 例:将1101101.10101B 转换成对应的八进制数。 解:所以,1101101.10101B =155.52Q 。 同理,用相反的方法可以将八进制数转换成对应的二进制数。 (4 )将二进制数转为对应的十六进制数 由于1 位十六进制数对应4 位二进制数,所以二进制数转换为十六进制时,只要以小数点为界,整数部分向左,小数部分向右每 4 位分成一组,各组用对应的 1 位十六进制数字表示,即可得到对应的十六进制数值。两端的分组不足 4 位时,用0 补足。 例:将1101101.10101B 转换成对应的十六进制数 解:所以1101101.10101B =6D.8AH 。 同理,用相反的方法可以将十六进制数转换成对应的二进制数。 例:将十六进制数5DF.9 转换成二进制: 例:将二进制数1100001.111 转换成十六进制: 至于其他的转换方法,如八进制到十进制,十六进制到十进制之间的转换,同样可用按权展开的多项式之和及整数部分用“ 除基取整数” 来实现的。只不过此时基数分别为8 和16 。当然,更简单实用的方法是借用二进制数做桥梁,用“ 八——二——十” 或“ 十六——二——八” 的转换方法来实现。

(完整word版)二进制、八进制、十六进制转换方式

第六章二进制、八进制、十六进制 6.1 为什么需要八进制和十六进制? 6.2 二、八、十六进制数转换到十进制数 6.2.1 二进制数转换为十进制数 6.2.2 八进制数转换为十进制数 6.2.3 八进制数的表达方法 6.2.4 八进制数在转义符中的使用 6.2.5 十六进制数转换成十进制数 6.2.6 十六进制数的表达方法 6.2.7 十六进制数在转义符中的使用 6.3 十进制数转换到二、八、十六进制数 6.3.1 10进制数转换为2进制数 6.3.2 10进制数转换为8、16进制数 6.4 二、十六进制数互相转换 6.5 原码、反码、补码 6.6 通过调试查看变量的值 6.7 本章小结 这是一节“前不着村后不着店”的课。不同进制之间的转换纯粹是数学上的计算。不过,你不必担心会有么复杂,无非是

乘或除的计算。 生活中其实很多地方的计数方法都多少有点不同进制的影子。 比如我们最常用的10进制,其实起源于人有10个指头。如果我们的祖先始终没有摆脱手脚不分的境况,我想我们现在一定是在使用20进制。 至于二进制……没有袜子称为0只袜子,有一只袜子称为1只袜子,但若有两袜子,则我们常说的是:1双袜子。 生活中还有:七进制,比如星期。十六进制,比如小时或“一打”,六十进制,比如分钟或角度…… (该版课程的内容更新及订正均已停止) 旧版课程打包下载 ---------------------------------- [想看涵盖“面向对象”、“图形编程”、“泛型编程”…… 的“最新2008年版白话C++”课程,请点击!] (另有: 博客版) 6.1 为什么需要八进制和十六进制? 编程中,我们常用的还是10进制……必竟C/C++是高级语言。 比如:

计算机进制之间相互转换

计算机进制之间的相互转换 一、进位计数制 所谓进位计数制是指按照进位的方法进行计数的数制,简称进位制。在计算机中主要采用的数制是二进制,同时在计算机中还存在八进制、十进制、十六进制的数据表示法。下面先来介绍一下进制中的基本概念: 1、基数 数制是以表示数值所用符号的个数来命名的,表明计数制允许选用的基本数码的个数称为基数,用R表示。例如:二进制数,每个数位上允许选用0和1,它的基数R=2;十六进制数,每个数位上允许选用1,2,3,…,9,A,…,F共16个不同数码,它的基数R=16。 2、权 在进位计数制中,一个数码处在数的不同位置时,它所代表的数值是不同的。每一个数位赋予的数值称为位权,简称权。 权的大小是以基数R为底,数位的序号i为指数的整数次幂,用i表示数位的序号,用Ri表示数位的权。例如,543.21各数位的权分别为102、101、100、10-1和10-2。 3、进位计数制的按权展开式 在进位计数制中,每个数位的数值等于该位数码与该位的权之乘积,用Ki表示第i位的系数,则该位的数值为KiRi。任意进位制的数都可以写成按权展开的多项式和的形式。 二、计算机中的常用的几种进制。 在计算机中常用的几种进制是:二进制、八进制、十进制和十六进制。二进制数的区分符用字母B表示,八进制数的区分符用字母O表示,十进制数的区分符用字母D表示或不用区分符,十六进制数的区分符用字母H表示。 1、二进制(Binary System)

二进制数中,是按“逢二进一”的原则进行计数的。其使用的数码为0,1,二进制数的基为“2”,权是以2为底的幂。 2、八进制(Octave System) 八进制数中,是按“逢八进一”的原则进行计数的。其使用的数码为0,1,2,3,4,5,6,7,八进制数的基为“8”,权是以8为底的幂。 3、十进制(Decimal System) 十进制数中,是按“逢十进一”的原则进行计数的。其使用的数码为1,2,3,4,5,6,7,8,9,0,十进制数的基为“10”,权是以10为底的幂。 4、十六进制(Hexadecimal System) 十六进制数中,是按“逢十六进一”的原则进行计数的。其使用的数码为0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,十进制数的基为“16”,权是以16 为底的幂。 三、进位计数制相互转换 1、二进制转换成八进制 转换原则:以小数点为中心,整数部分从右向左,小数部分从左向右,“三位一体,不足补零。” 举例:(.1111)B =(010 101 100)O=()O 2、二进制转换成十进制 转换原则:让二进制各位上的系数乘以对应的权,然后求其和。 举例:()B =(1×22+1×21+1×20+1×2-1+1×2-2)D=()D 3、二进制转换成十六进制 转换原则:以小数点为中心,整数部分从右向左,小数部分从左向右,“四位一体,不足补零”。 举例:()B =(0001 0101 )H = (1 5 )H 4、八进制转换成二进制 转换原则:将八进制上每一位数码“一分为三”,即可得二进制。 举例:()O =(111 110 011)B

计算机各种进制转换

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

进制之间相互关系

二进制、八进制、十进制、十六进制之间转换 一、十进制与二进制之间的转换 (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转换为二进制(保留到小数点第四位) 大家从上面步骤可以看出,当第五次做乘法时候,得到的结果是0.4,那么小数部分继续乘以2,得0.8,0.8又乘以2的,到1.6这样一直乘下去,最后不可能得到小数部分为零,因此,这个时候只好学习十进制的方法进行四舍五入了,但是二进制只有0和1两个,于是就出现0

计算机《数制与编码-进制转换》公开课教案

数制与编码——进制转换 【学情分析】本课内容是在学生已经学习了计算机发展与应用、计算机系统的组成等知识的基础上进行,已经初步知道了人与计算机进行信息交换通常使用程序设计语言,程序设计语言经历了三个阶段:机器语言、汇编语言和高级语言。机器语言是机器指令序列,是一串0和1组成的二进制编码,是唯一能被计算机识别的语言。那么要了解计算机是如何将我们发出的信息转换成数字编码之前,我们必须先了解掌握各种数制及相互间的转换。这节课内容较多,学生理解起来比较困难,根据课堂需要和学生特点,既要让学生有信心、热情地学习新知识,又要让他们主动积极地参与到整个教学活动中来。 【课时安排】2课时 【授课形式】讲授、多媒体教学 【教学方法】讲授法、练习法、问答法、演示法 【教学用具】计算机、黑板、多媒体、课件 【教学目标】 知识目标:1、了解数制、基、基数及位权的概念; 2、掌握二进制、十进制、八进制、十六进制的表示方法; 3、掌握二进制与十进制间相互转换的方法。 技能目标:1、培养学生逻辑运算能力; 2、培养学生分析问题、解决问题的能力; 3、培养学生独立思考问题的能力。 情感目标:通过数制转换的学习培养学生的计算机科学涵养,同时,让学生体会到认真的学习态度,严谨细致的学习习惯。 【教学重点】1、进制、基数、位权的概念。2、二进制与十进制间相互转换方法。【教学难点】二进制与十进制间相互转换 【教学过程】 一、师生问好,考勤 二、复习旧识,导入新课 (以下教师的语言、活动简称“师”,学生的活动简称“生”)

课前引入: 师:我想请大家做一道算术题:110+110= ? (学生几乎都回答等于220)。 师:那么220这个答案对还是不对呢?可以说对,也可以说不对。在学习本课之前,回答220是正确的,但是,在我们学完今天的知识后,答案就不一是220了。为什么呢? (设疑,学生思考,教师点名个别学生回答) 师:谈到数字,有很多同学可能会觉的很可笑,这不就是1234……是的,在生活中,我们用的一般都是十进制。那么大家想一下,我们的生活中,还用到了哪些别的进制? (学生思考回答:十二进制、60进制等) 师:我们的一年有12个月,这是十二进制。一小时等于60分,一分等于60秒,我们的时间是60进制。当然,还有一些,比如一米等于三尺,三进制。比如我们的鞋子或袜子,两只为一双,这是二进制。可是我们通过前面的课程已经知道计算机唯一能识别是二进制数,这正是我们本节课所学习的重点。(本节课我们将了解数制、基、基数及位权的概念;掌握二进制、十进制、八进制、十六进制的表示方法;掌握二进制与十进制间相互转换的方法。) 三、新课讲解 (一)主要概念 1.数制 师:在我们小学阶段最开始学习的就是十以内的加法,之后是两位数的加法,在两位数加法的学习中,老师是不是经常会说,要注意逢十进一?也就是我们平常说的别忘了进位。像这样按进位的原则进行记数的方法叫做进位记数制。简称为“数制”或“进制”。我们平时用的最多的就是十进制了,那么,大家想一下,还有没有其他的进制呢?比如,一周七天,七进制;一年12个月,十二进制;一小时六十分钟,六十进制;1公斤=2斤,1时辰=2小时,逢二进一,就是二进制。除此以外在计算机语言中常用八进制和十六进制。由此也可以推断出:每一种进制的进位都遵循一个规则,那就是N进制,逢N进一。 2.基与基数

进制之间的转换

--进制之间的转换-- 介绍:进制也就是进位计数制,是人为定义的带进位的计数方法(有不带进位的计数方法,比如原始的结绳计数法,唱票时常用的“正”字计数法,以及类似的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转换为八进制解析:

计算机进制转换

二进制、八进制、十进制、十六进制之间转换二进制、八进制、十进制、十六进制之间转换 一、十进制与二进制之间的转换 (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转换为二进制(保留到小数点第四位)

进制转换计算+ASCII表

一、二进制转化成其他进制 1. 二进制(BINARY)——>八进制(OCTAL) 例子1:将二进制数(10010)2转化成八进制数。 (10010)2=()2=(2 2)8=(22)8 例子2:将二进制数(0.1010)2转化为八进制数。 (0.10101)2=(0. 101 )2=(0. 5 2)8=(0.52)8 诀窍:因为每三位二进制数对应一位八进制数,所以,以小数点为界,整数位则将二进制数从右向左每3位一隔开,不足3位的在左边用0填补即可;小数位则将二进制数从左向右每3位一隔开,不足3位的在右边用0填补即可。 2. 二进制(BINARY)——>十进制(DECIMAL) 例子1:将二进制数(10010)2转化成十进制数。 (10010)2=(1x24+0x23+0x22+1x21+0x20)10=(16+0+0+2+0)10=(18) 10 例子2:将二进制数(0.10101)2转化为十进制数。 (0.10101)2=(0+1x2-1+0x2-2+1x2-3+0x2-4+1x2-5)10= (0+0.5+0.25+0.125+0.0625+0.03125)10=(0.96875)10 诀窍:以小数点为界,整数位从最后一位(从右向左)开始算,依次列为第0、1、2、3………n,然后将第n位的数(0或1)乘以2的n-1次方,然后相加即可得到整数位的十进制数;

小数位则从左向右开始算,依次列为第1、2、3……..n,然后将第n位的数(0或1)乘以2的-n次方,然后相加即可得到小数位的十进制数(按权相加法)。

3. 二进制(BINARY)——>十六进制(HEX) 例子1:将二进制数(10010)2转化成十六进制数。 (10010)2=(0001 0010)2=(1 2)16=(12) 16 例子2:将二进制数(0.1010)2转化为十六进制数。 (0.10101)2=(0. 1010 1000)2=(0. A 8)16=(0.A8)16 诀窍:因为每四位二进制数对应一位十六进制数,所以,以小数点为界,整数位则将二进制数从右向左每4位一隔开,不足4位的在左边用0填补即可;小数位则将二进制数从左向右每4位一隔开,不足4位的在右边用0填补即可。 (10010)2=(22)8=(18) 10=(12)16 (0.10101)2=(0.52)8=(0.96875)10=(0.A8)16 二、八进制转化成其他进制 1. 八进制(OCTAL)——>二进制(BINARY) 例子1:将八进制数(751)8转换成二进制数。 (751)8=(7 5 1)8=(111 101 001)2=(111101001)2 例子2:将八进制数(0.16)8转换成二进制数。

计算机各进制换算

一:十进制数转换成二进制数。 随便拿出一个十进制数“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进制表达出来的一个数值,转换成八进制数十多少? 商余数 步数 358/8= 44 6 第一步 44/8= 5 4 (这里的44是第一步运算结果的商) 第二步 5/8= 0 5 (这里的5是第二步运算结果的商) 第三步 那么十进制数358转换成8进制数就是546。既358(10)=546(8) 解析二: 1.没什么好说的啦,10进制数转换成2进制数和10进制数转换成8进制数的唯一不一样的地方就是除数变了,除数由“2” 变成了“8”。其余的都一样。所以解析一,你一定要看明白并记好。 2.你或许会疑问5/8为什么商为“0” 余数为“5”。因为5不够被8除,那么商就是“0”余数就是“5” 同理1/2商为“0”余数为“1”。不多解释了啊!

进制转换计算器

一.功能概述 本应用是讲从数字键盘输入的某进制的数据按要求转换成其他进制的数据,以实现进制转换。本例程是基于对话框的工程,用一个对话框作为应用程序的主窗口,同时实例通过各种控件实现进制转换功能。其中,控件主要包括以下类型:编辑框,命令按钮、静态文本、群组框、单选按钮、复选框。 其中主要控件功能为: ·“输入数据”和“转换数据”编辑框,分别用于显示输入的数矩和转换的结果。 ·“转换为八进制”、“转换为十六进制”、“转换为十进制”三个命令按钮。用于将输入的数据转换为其他的进制。“重新开始” 按钮用于将输入的数据和转换的数据清空。 ·“八进制”、“十进制”、“十六进制”单选按钮对应输入数据的进制。同时为防止输入某进制下无效的按钮,对进制无效的按钮 施予静止。本实例中默认输入为十进制。 ·0-9按钮和A-F按钮做为数字键盘 ·“输入数据加进制符号”和“转换数据加进制符号” ·“数据格式显示选择”群组框中两个复选框作为一组。

应用程序实例界面 二.实现步骤 步骤一 选择file | new 命令,打开new对话框,选择project选项卡,设置工程名为Calculator,然后单击OK按钮。如下图所示:

步骤二 打开下图所示对话框,选择基本对话框,其余设置均采用默认操作,单击“完成”按钮完成整个工程的创建,如下图:

步骤三 在应用程序的主窗口的对话框资源中添加控件,并为对话框中的各个控件添加成员变量和消息响应函数。 添加成员变量和消息响应函数

步骤四 通过上述步骤完成各个控件的添加和控制,下面将对对话框进和控件进行编程,以实现目标功能 ①数字键按钮初始状态的设定。由于默认的进制为十进制,所以0~9折十个数字的默认状态是enable。因为系统的所有命令按钮的默认状态是enable,所以需要在初始化的时候将A~F的状态设置为disable。选择class view 选项卡,双击CCalculatorDig 下面的OnInitDialog()并在return钱添加如下代码: m_button_A.EnableWindow(FALSE); m_button_B.EnableWindow(FALSE); m_button_C.EnableWindow(FALSE); m_button_D.EnableWindow(FALSE); m_button_E.EnableWindow(FALSE); m_button_F.EnableWindow(FALSE); ②在程序运行过程中,数字键按钮的状态需要根据对三个单选按钮的选择而定。它们的事件函数代码分别如下: void CCalculatorDig::OnRADIOo() { char_radio='O'; value=0; m_button_8.EnableWindow(FALSE); m_button_9.EnableWindow(FALSE); m_button_A.EnableWindow(FALSE); m_button_B.EnableWindow(FALSE); m_button_C.EnableWindow(FALSE); m_button_D.EnableWindow(FALSE); m_button_E.EnableWindow(FALSE); m_button_F.EnableWindow(FALSE); } void CCalculatorDig::OnRADIOd() { char_radio='D'; value=0; m_button_8.EnableWindow(TRUE); m_button_9.EnableWindow(TRUE); m_button_A.EnableWindow(FALSE); m_button_B.EnableWindow(FALSE);

各种进制之间的转换方法

各种进制之间的转换方法 ⑴二进制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,逐项相加,其和就是相应的十进制数。

相关文档
最新文档