文档库 最新最全的文档下载
当前位置:文档库 › 计算机数值之间的转换

计算机数值之间的转换

计算机数值之间的转换
计算机数值之间的转换

1. 数值在计算机中的表现形式

计算机中采用二进制时由计算机所用的逻辑器件所决定的。这种逻辑器件是具有两种状态的电路(触发器),其好处是:运算简单、实现方便、成本低。

计算机采用二进制数进行运算,并可通过进制的转换将二进制转换成人们熟悉的十进制,并在常用的转换中为了计算方便,还会用到八进制和十六进制的计数方法。

◎十进制数

十进制数具有10个数字符号:0、1、2、3、4、5、6、7、8、9、10分别表示数值0-10。

◎二进制数

进制数只有0,1表示,根据位权表示法,可以将二进制的位权展开计算出相对应的十进制数:

例: (1011)2=1*23+0*22+1*21+1*20=8+0+2+1=(11)10

◎八进制数

八进制数具有8个数字符号:0、1、2、3、4、5、6、7、8分别表示数值0-8。计数时是按“逢8进一”原则的。这样,任何一个八进制数的值都可以用它的按位权展开式来计算出对应的十进制数。

例:(650)8=6*82+5*81+0*80=384+40+0=(424)10

◎十六进制数

十六进制数具有16个数字符号:0、1、2、3、4、5、6、7、8、

9、A、B、C、D、E、F分别表示十六进制数值0-15。计数时是按“逢16进一”原则的。这样,任何一个十六进制数的值都可以用它的按位权展开式来计算出对应的十进制数。

例:(3AB.12)16=3*162+10*161+11*160+1*16-1+2*16-2=(939.0664)10

◎十进制化二进制

⑴ 十进制整数:采用除 2 取余法

⑵ 十进制小数:采用乘 2 取整法

⑶ 带小数整数:以上两方法的结合

⑷ 二进制化十进制:采用按权展开法

◎二进制化八进制

⑴ 二进制化八进制:采用三位分组法

⑵ 八进制化二进制:采用扩展三位法

⑶ 三位二进制数和八进制数码对照表

◎二进制化十六进制

⑴ 二进制化十六进制:采用四位分组法

⑵ 十六进制化二进制:采用扩展四位法

◎二进制、八进制、十六进制化十进制

采用按权展法

◇例:将十进制数 83 转换成二进制数。

解:采用短除法计算

2| 83 ------余数:1 ←──二进制整数列的低位

2| 41 ------余数:1

2| 20 ------余数:0

2| 10 ------余数:0

2| 5 ------余数:1

2| 2 ------余数:0

1 ←─────────二进制整数列的低高

计算结果为二进制数:1010011

)10= 1×27+0×26+1×25+1×24+0×23+1×22+1×21+0×20 = 182

◇例;将十进制数 34567 转换成十六进制数。

解:仿照十进制数转换成二进制数,采用短除法计算

16| 34567 ------ 余数:7 ←──第 0 位

16| 2160 ------ 余数:0 ←──第 1 位

16| 135 ------ 余数:7 ←──第 2 位

8 ←─────────第 3 位

∴ 结果是一个 4 位十六进制数: 8707

解:将此二进制数按每4位为一组分成4组

1101 1010 0110 0011

↓↓↓↓

D A 6 3

查表得出

.不同进位制数之间的转换

十进制整数转换成二进制整数可以采取“除以2取余法”。

十进制小数转换成二进制小数,可以采取“乘以2取整法”,把给定的十进制小数不断乘以2,取乘积的整数部分作为二进制小数的最高位,然后把乘积小数部分再乘以2,取乘积的整数部分,得到二进制小数的第二位,重复上述过程,就可以得到希望的位数,有时得到的是近似值。八进制数转换成二进制数的方法很简单,只要把每一个八进制数字改写成等值的3位二进制数即可,且保持高、低位的次序不变。八进制数字与二进制数的对应关系如下:

(0)8 =000 (1)8 =001 (2)8 =010 (3)8 =011

(4)8 =100 (5)8 =101 (6)8 =110 (7)8 =111

十六进制数转换成二进制数的方法与八进制数转换成二进制数的方法类似,只要把每一个十六进制数字改写成等值的4位二进制数即可,且保持高、低位的次序不变。十六进制数字与二进制数的对应关系如下:

(0)16 =0000 (1)16 =0001 (2)16 =0010 (3)16 =0011

(4)16 =0100 (5)16 =0101 (6)16 =0110 (7)16 =0111

(8)16 =1000 (9)16 =1001 (A)16 =1010 (B)16 =1011 (C)16 =1100 (D)16 =1101 (E)16 =1110 (F)16 =1111 二进制数转换成八进制数,整数部分从低位向高位方向每3位用一个等值的八进制数来替换,最后不足3位时在高位补0凑满3位;小数部分从高位向低位方向每3位用一个等值的十六进制数来替换,最后不足3位时在低位补0凑满3位。

二进制数转换成十六进制数,整数部分从低位向高位方向每4位用一个等值的十六进制数来替换,最后不足4位时在高位补0凑满4位;小数部分从高位向低位方向每4位用一个等值的十六进制数来替换,最后不足4位时在低位补0凑满4位。

二进制数与八进制数、十六进制数有很简单、直观的对应关系。二进制数太长,书写、阅读、记忆均不方便;八进制、十六进制却像十进制数一样简练,易写易记。必须注意,计算机中只使用二进制一种计数制,并不使用其他计数制,但为了开发程序、调试程序、阅读机器内部代码时的方便,人们经常使用八进制或十六进制来等价地表示二进制,所以大家也必须熟练地掌握八进制和十六进制。

4.二进制信息的计量单位

二进制的每一位(即“0”或“1”)是组成二进制信息的最小单位,称为1个“比特”(bit),或称“位元”,简称“位”,一般用小写的字母“b”表示。比特是计算机中处理、存储、传输信息的最小单位。

另一种稍大些的二进制信息的计量单位是“字节”(Byte),也称“位组”,一般用大写字母“B”表示。一个字节等于8个比特。

在信息处理系统中,使用各种不同的存储器来存储二进制信息时,使用的度量单位是比字节或字大得多,经常使用的单位有: “千字节”(KB),1KB=2 10 字节=1024B

“兆字节”(MB),1MB=2 20 字节=1024KB

“吉字节”(GB),1GB=2 30 字节=1024MB(千兆字节)“太字节”(TB),1TB=2 40 字节=1024GB(兆兆字节)

在网络中传输二进制信息时,由于是一位一位串行传输的,传输速率的度量单位与上述单位有所不同,且使用的是十进制。经常使用的速度单位有:

“比特/秒”(b/s),有时也称“bps”。如2400bps(2400b/s),9600bps (9600b/s)等。

“千比特/秒”(kb/s),1kb/s=10 3 比特/秒=1000b/s

“兆比特/秒”(Mb/s),1Mb/s=10 6 比特/秒=1000kb/s

“吉比特/秒”(Gb/s),1Gb/s=10 9 比特/秒=1000Mb/s

“太比特/秒”(Tb/s),1Tb/s=10 12 比特/秒=1000Gb/s

在计算机内部对二进制信息进行运算和处理时,使用的单位除了位(比特)和字节之外,还经常使用“字”作为单位。以80x86或Pentium 微处理器为例,处理器可直接进行操作处理的数据单位有5种:位(dit)、字节(Byte)、字(Word)、双字(DoubleWord)和四字(QuadWord)。

数值信息在计算机内的表示

1.整数(定点数)的表示

整数不使用小数点,所以它也叫做“定点数”。计算机中的整数分为两类:不带符号的整数(Unsigned Integer),带符号的整数(Signed Integer)。

不带符号的整数常用于表示地址等正整数,它们可以是8位、16位甚至32位。8个二进位表示的正整数其取值范是0~255(2 8 -1),16个二进位表示的正整数其取值范是0~65535(2 16 -1),32个二进位表示的正整数其取值范是0~2 32 -1。

带符号的整数必须使用一个二进位作为其符号位,一般总是最高位(最左面的一位),“0”表示“+”(正数),“1”表示“-”(负数),其余各位则用来表示数值的大小。

为了内部运算处理方便,负整数在计算机内不止一种表示方法。上面的表示法称为“原码”,另外的两种方法分别叫做“反码”和“补码”。

负数使用反码表示时,符号位仍为“1”,但绝对值部分却正好与原码相反(“0”变为“1”,“1”变为“0”)。

负数使用补码表示时,符号位也是“1”,但绝对值部分却是反码的个位加“1”后所得到的结果。注意:正整数无论采用原码、反码还是补码表示,其编码都是相同的,并无区别。

还有一种整数也经常在计算机内使用,称为“二进制编码的十进制”整数(Binary Coded Decimal,简称BCD整数),它使用4个二进位表示1个十进制数字,符号的表示仍与上相同。来源:考试大-计算机等级考试计算机概述

考点1计算机发展简史

1946年2月日,世界上第一台电子计算机Eniac在美国宾夕法尼亚大学诞生,它的出现具有划时代的伟大意义。

从第一台计算机的诞生到现在,计算机技术经历了大型机、微型机及网络阶段。对于传统的大型机,根据计算机所采用电子元件的不同而划分为电子管、晶体管、集成电路和大规模、超大规模集成电路等四代,如表l1-1所示。

我国在微型计算机方面,研制开发了长城、方正、同方、紫光、联想等系列微型计算机我国在巨型机技术领域中研制开发了“银河”、“曙光”、“神威”等系列巨型机。

考点2计算机的特点

现代计算机算一般具有以下几个重要特点。

(1)处理速度快

(2)存储容量大。

(3)计算精度高。

(4)工作全自动。

(5)适用范围广,通用性强。

考点3计算机的应用

计算机具有存储容量大,处理速度快,逻辑推理和判断能力强等许多特点,因此已被广泛应用于各种科学领域,并迅速渗透到人类社会的各个方面,同时也进人了家庭。计算机主要有以下几个方面的应用。(1)科学计算(数值计算)。

(2)过程控制。

(3)计算机辅助设计(CAD)和计算机辅助制造(CAM)。

(4)信息处理。

(5)现代教育(计算机辅助教学(CAI)、计算机模拟、多媒体教室、网上教学和电子大学)。

(6)家庭生活。

考点4计算机的分类

计算机品种众多,从不同角度可对它们进行分类,如表1-2所示。1.2数制与编码

考点5数制的基本概念

1.十进制计欺制

其加法规则是“逢十进一”,任意一个十进制数值都可用0. 1.

2 .

3 .

4 .

5 .

6 .

7 .8.9共10个数字符号组成的字符串来表示,这些数字符号称为数码;数码处于不同的位置代表不的数值。例如720.30可以写成7x102+2x101+0x100+3 x10 1+0x10 2,此式称为按权展开表示式

2. R进制计数制

从十进制计数制的分析得出,任意R进制计数制同样有基数N、和Ri 按权展开的表示式。R可以是任意正整数如二进制R为2。

(1)基数(Radix)

一个计数所包含的数字符号的个数称为该数的基,.用R表示。例如,对二进制来说,任意一个二进制数可以用0,1两个数字符表示,其基数R等于2。

(2)位值(权)

任何一个R进制数都是由一串数码表示的,其中每一位数码所表示的实际值都大小,除数码本身的数值外,还与它所处的位置有关,由位置决定的值就称为位置(或位权)。

位置用基数R的I次幂Ri表示。假设一个R进制数具有n为整数,m 位小数,那么其位权为Ri,其中i=-m~n-1。

(3)数值的按权展开

任一R进制数的数值都可以表示为:各个数码本身的值与其权的乘积之和。例如,二进制数101.01的按权展开为:

101.01B=1×22+0×21+1×20+0×2-1+1×2-2=5.25D

任意一个具有n位整数和m位小数的R进制数的按权展开为:

(N)

R=dn-1×RN-1+dn-2×RN-2+…+d2×R2+d1×R1+d0×R0+d-1×R-1+…+d-M×R-M其中di为R进制的数码

考点6二、十、十六进制数的数码

(1)十进制和二进制的基数分别为10和2,即“逢十进一”和“逢二进一”。它们分别含有10个数码(0,1,2,3,4,5,6,7,8,9)和两个数码(0,1)。位权分别为10i和2i(i=-m-n-1,m,n为自然数)。二进制是计算机中采用的数制,它具有简单可行、运算规则简单、适合逻辑运算的特点。

(2)十六进制基数为16,即含有16个数字符号:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F。其中A,B,C,D,E,F分别表示数码10,11,12,13,14,15,权为16i(i=-m~n一1,其中m、n为自然数)。加法运算规则为“逢十六进一”。如表1-3所示列出了0~15这16个十进制数与其他3种数制的对应表示。

(3)非十进制数转换成十进制数。利用按权展开的方法,可以把任一数制转换成十进制数。例如:

1010. 101 B=1 ×23+0 ×22+1 ×21+0 ×2 01×2-1+0 ×2-2+

1×2-3

只要掌握了数制的概念,那么将任一R进制数转换成十进制数的方法都是一样的。

(4)十进制整数转换成二进制整数。把十进制整数转换成二进制整数,其方法是采用“除二取余”法。具体步骤是:把十进制整数除以2得一商数和一余数;再将所得的商除以2,又得到一个新的商数和余数;

这样不断地用2去除所得的商数,直到商等于0为止。每次相除所得的余数便是对应的二进制整数的各位数码。第一次得到的余数为最低有效位,最后一次得到的余数为最高有效位。

把十进制小数转换成二进制小数,方法是“乘2取整”,其结果通常是近似表示。转换成二进制小数,方法是“乘2取整”,其结果通常是近似表示。上述的方法同样适用于十进制数对十六进制数的转换,只是使用的基数不同。

(5)二进制数与十六进制数间的转换。二进制数转换成十六进制数的方法是从个位数开始向左按每4位的组划分,不足4位的组以0补足,然后将每组4位二进制数代之以一位十六进制数字即可。十六进制数字即可

1.3 计算机中字符的编码

考点7 西文字符的编码

计算机中常用的字符编码有EBCDIC码和ASCII码。IBM系列大型机采用EBCDIC码,微型机采用ASCII码是美国标准信息交换码,被国际化组织指定为国际标准。它有7位码和8位码两种版.国际的7位ASCII码是用7位二进制数表示一个字符的编码,其编码范围从0000000B一1111111B,共有7=128个不同的编码值,相应可以表示128个不同的编码。7位ASCII码表如表14所示。

表1-4 7位ASCII码表

考点8汉字的编码

1.汉字信息的交换码

汉字信息交换码简称交换码,也叫国标码。规定了7 445个字符编码,其中有682个非汉字图形符和6763个汉字的代码。有一级常用字3755个,二级常用字3 008个。两个字节存储一个国标码。国标码的编码范围是2121H一7E7EH。区位码和国标码之间的转换方法是将一个汉字的十进制区号和十进制位号分别转换成十六进制数,然后再分别加上20H,就成为此汉字的国标码:

汉字国标码=区号(十六进制数)+20H位号(十六进制数)+ 20H

而得到汉字的国标码之后,我们就可以使用以下公式计算汉字的机内码:

汉字机内码=汉字国标码+8080H

2.汉字偷入码

汉字输人码也叫外码,都是由键盘上的字符和数字组成的。目前流行的编码方案有全拼输人法、双拼输入法、自然码输人法和五笔输人法等。

3.汉字内码

汉字内码是在计算机内部对汉字进行存储、处理的汉字代码,它应能满足存储、处理和传输的要求。一个汉字输人计算机后就转换为内码。内码需要两个字节存储,每个字节以最高位置‘1”作为内码的标识。4.汉字字型码

汉字字型码也叫字模或汉字输出码。在计算机中,8个二进制位组成一个字节,它是度量空间的基本单可见一个16 x 16点阵的字型码需要16 x 16/8=32字节存储空间。

汉字字型通常分为通用型和精密型两类。

5.汉字地址码

汉字地址码是指汉字库中存储汉字字型信息的逻辑地址码。它与汉字内码有着简单的对应关系,以简化内码到地址码的转换。

6.各种汉字代码之间的关系

汉字的输人、处理和输出的过程,实际上是汉字的各种代码之间的转换过程。如图1- 1表示了这些汉字代码在汉字信息处理系统中的位置及它们之间的关系.

1. 4指令和程序设计语言

考点9计算机指令

一条指令必须包括操作码和地址码两部分。一台计算机可能有多种多样的指令这些指令的集合称为该计算机的指令系统。

考点10程序设计语言

程序设计语言通常分为机器语言、汇编语言和高级语言3类

(1)机器语言。机器语言是计算机唯一能够识别并直接执行的语言。(2)汇编语言。用汇编语言编写的程序称为汇编语言源程序.计算机不能直接识别它。必须先把汇编语言程序翻译成机器语言程序(称目标程序),然后才能被执行。

(3)高级语言。高级语言要用翻译的方法把它翻译成机器语言程序才能执行。翻译的方法有“解释”和“编译”两种。一个高级语言源程序必须经过“编译”和“连接装配”才能成为可执行的机器语言.

1.5计算机系统的组成

考点11计算机系统概述

计算机系统是由硬件系统和软件系统两大部分组成的,如表l一5

考点12“存储程序控制”计算机的概念

1944年8月,著名美籍匈牙利数学家冯?诺依曼提出了EDVAC计算机方案,他在方案中提出了3条思想。

(1)计算机的基本结构。计算机硬件应具有运算器、控制器、存储器、输人设备和输出设备等5大基本功能。

(2)采用二进制数.二进制数便于硬件的物理实现,又有简单的运算规则。

(3)存储程序控制.存储程序实现了自动计算,确定了冯.诺依曼型计算机的基本结构。

考点13计算机硬件的组成

1运算器

运算器是计算机处理数据和形成信息的加工厂,主要完成算术运算和逻辑运算,它由算术逻辑运算部(ALU)、累加器及通用寄存器组成。2控制器

控制器是计算机的神经中枢,它用以控制和协调计算机各部件自动、连续地执行各条指令。它通常由指令部件、时序部件及操作控制部件组成。

(1)指令寄存器:存放由存储器取得的指令。

(2)译码器:将指令中的操作码翻译成相应的控制信号。

(3)时序节拍发生器:产生一定的时序脉冲和节拍电位,使得计算机有节奏、有次序地工作。

(4)操作控制部件:将脉冲、电位和译码器的控制信号组合起来,有时间性地、有时序地控制各个部件完成相应的操作。

(5)指令计数器:指出下一条指令的地址。

3存储器

存储器是计算机记忆装置,主要用来保存数据和程序,具有存数和取数的功能。存储器分为内存储器和外存储器。CPU只能访问存储在内存中的数据,外存中的数据只有先调入内存后才能被CPU访问和处理。

4.输入设备

输人设备的主要作用是把准备好的数据、程序等信息转变为计算机能接受的电信号送人计算机。

5.输出设备

输出设备的主要功能是把运算结果或工作过程以人们要求的直观形式表现出来。

考点14计算机软件系统的组成

软件系统可分为系统软件和应用软件两大类二

1系统软件

系统软件分为操作系统、语言处理系统(翻译程序)、服务程序和数据库系统4大类别。

(1)操作系统(OS)。一个操作系统应包括下列5大功能模块:处理器管理、作业管理、存储器管理、设备管理和文件管理。

操作系统通常分成以下5类。

①单用户操作系统。微软的MS-DOS、Windows属于此类。

②批处理操作系统。IBM的DOS/VSE属于此类。

③分时操作系统。UNIX是国际最流行的分时操作系统。

④实时操作系统。

⑤网络操作系统。

(2)对于高级语言来说,翻译的方法有两种:解释和编译。对源程序进行解释和编译任务的程序,分别叫做解释程序和编译程序。

2应用软件

应用软件可分为通用软件和专用软件两类其中通用软件又分为3类。(1)文字处理软件如Office 2000中的Word.

(2)电子表格软件二如Office 2000中的Excel.

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

二进制数第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个概念 ?数码:表示数的符号 ?基:数码的个数 ?权:每一位所具有的值 请看例子: 数制十进制二进制八进制十六进制 数码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 个答案都不对

VC6_C++计算器与进制转换工具设计步骤加代码

成都信息工程学院 面向对象程序设计开发文档 题目:计算器和进制转换工具 学院:控制工程学院 班级:自动化 学生姓名: 学号:2011 指导教师:姚 禁止除作者外他人复制上传本文档到百度文库和豆丁网这类网站!!!

二〇一二年十二月十三日 课程名称:面向对象的程序设计学院:控制工程学院班级:自动化学生姓名:学号: 2011 指导教师:

摘要 本设计实现了一个简单的计算器,该计算器不仅实现了简单的四则运算功能,还实现了三角函数计算功能,而且具有简洁大方的图文外观。此设计按照软件工程的方法进行,系统具有良好的界面和必要的交互信息,使操作人员能快捷简单地进行操作,充分降低了数字计算的难度和节约了时间。 编写一个简单的DOS窗口运行的工具,实现将任意的十进制整数转换成R进制数(R在2-16之间)。本系统开发平台为Windows 7,程序设计语言采用C++,在程序设计中,采用了结构化与面向对象两种解决问题的方法。 关键词:程序设计;计算器;MFC;按钮控件;进制转换

目录 引言 (1) 第一章概述 (2) 1.1 可行性分析 (2) 1.2 需求分析 (2) 第二章总体设计 (2) 2.1 功能说明 (2) 第三章软件设计 (3) 3.1 计算器工程创建 (3) 3.2 计算器开发步骤 (5) 3.3 进制转换工具设计步骤 (13) 结论 (18)

引言 计算器是日常生活中十分便捷有效的工具,能实现加、减、乘、除、开方、求平方等简单运算的工具。要实现计算功能,可以用VC++的知识编写程序来解决此问题。用。 在程序设计中,通过设计、编制、调试一个模拟计算器的程序,加深对语法及语义分析原理的理解,并实现对命令语句的灵活应用。 本课程设计主要在运算过程中,如果通过计算器来完成,就会减少计算量,该程序即可以在简单计算器键面下进行简单运算。 在日常工作中,有时会需要对数字进行进制的转换,但是笔算往往速度慢,而且有时会计算错误,所以编译一个简单的进制转换工具能使得计算变得简单。

各种进制之间转换方法

各进制转换方法(转载)一、计算机中数的表示: 首先,要搞清楚下面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 ,逐项相加,其和就是对应的十进制数。 例 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 。当然,更简单实用的方法是借用二进制数做桥梁,用“ 八——二——十” 或“ 十六——二——八” 的转换方法来实现。

进制转换计算+ASCII表

一、二进制转化成其他进制 1. 二进制(BINARY)——>八进制(OCTAL) 例子1:将二进制数(10010)2转化成八进制数。 (10010)2=(010 010)2=(2 2)8=(22)8 例子2:将二进制数()2转化为八进制数。 ()2=(0. 101 010)2=(0. 5 2)8=()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:将二进制数()2转化为十进制数。 ()2=(0+1x2-1+0x2-2+1x2-3+0x2-4+1x2-5)10=(0+++++)10=()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:将二进制数()2转化为十六进制数。 ()2=(0. 1010 1000)2=(0. A 8)16=()16 诀窍:因为每四位二进制数对应一位十六进制数,所以,以小数点为界,整数位则将二进制数从右向左每4位一隔开,不足4位的在左边用0填补即可;小数位则将二进制数从左向右每4位一隔开,不足4位的在右边用0填补即可。 (10010)2=(22)8=(18) 10=(12)16 ()2=()8=()10=()16 二、八进制转化成其他进制 1. 八进制(OCTAL)——>二进制(BINARY) 例子1:将八进制数(751)8转换成二进制数。 (751)8=(7 5 1)8=(111 101 001)2=(1)2 例子2:将八进制数()8转换成二进制数。 ()8=(0. 1 6)8=(0. 001 110)2=()2 诀窍:八进制转换成二进制与二进制转换成八进制相反。

(完整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++是高级语言。 比如:

进制转换计算

二进制、八进制、十进制与十六进制 一、进制的概念 在计算机语言中常用的进制有二进制、八进制、十进制和十六进制,十进制是最主要的表达形式。 基数:基数是指一种进制中组成的基本数字,也就是不能再进行拆分的数字。二进制是0和1;八进制是0-7;十进制是0-9;十六进制是0-9+A-F(大小写均可)。也可以这样简单记忆,假设是n进制的话,基数就是【0,n-1】的数字,基数的个数和进制值相同,二进制有两个基数,十进制有十个基数,依次类推。 运算规则:运算规则就是进位或错位规则。例如对于二进制来说,该规则是“满二进一,借一当二”;对于十进制来说,该规则是“满十进一,借一当十”。其他进制也是这样。 三、二进制转化成其他进制 1. 二进制(Binary)——>八进制(Octal) 例子:将二进制数(10010)2转化成八进制数。(10010)2=(010 010)2=(2 2)8=(22)8 将二进制数(0.1010)2转化为八进制数。(0.10101)2=(0. 101 010)2=(0. 5 2)8=(0.52)8 诀窍:因为每三位二进制数对应一位八进制数,所以,以小数点为界,整数位则将二进制数从右向左每3位一隔开,不足3位的在左边用0填补即可;小数位则将二进制数从左向右每3位一隔开,不足3位的在右边用0填补即可。 2. 二进制(Binary)——>十进制(Decimal) 例子:将二进制数(10010)2转化成十进制数。 (10010)2=(1x24+0x23+0x22+1x21+0x20)10=(16+0+0+2+0)10=(18) 10将二进制数(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) 例子:将二进制数(10010)2转化成十六进制数。(10010)2=(0001 0010)2=(1 2)16=(12) 16将二进制数(0.1010)2转化为十六进制数。 (0.10101)2=(0. 1010 1000)2=(0. A 8)16=(0.A8)16 诀窍:因为每四位二进制数对应一位十六进制数,所以,以小数点为界,整数位则将二进制数从右向左每4位一隔开,不足4位的在左边用0填补即可;小数位则将二进制数从左向右每4位一隔开,不足4位的在右边用0填补即可。 四、八进制转化成其他进制 1. 八进制(Octal)——>二进制(Binary) 例子1:将八进制数(751)8转换成二进制数。 (751)8=(7 5 1)8=(111 101 001)2=(111101001)2 例子2:将八进制数(0.16)8转换成二进制数。 (0.16)8=(0. 1 6)8=(0. 001 110)2=(0.00111)2 诀窍:八进制转换成二进制与二进制转换成八进制相反。 2. 八进制(Octal)——>十进制(Decimal) 例子1:将八进制数(751)8转换成十进制数。 (751)8=(7x82+5x81+1x80)10=(448+40+1)10=(489)10 例子2:将八进制数(0.16)8转换成十进制数。

计算机进制之间相互转换

计算机进制之间的相互转换 一、进位计数制 所谓进位计数制是指按照进位的方法进行计数的数制,简称进位制。在计算机中主要采用的数制是二进制,同时在计算机中还存在八进制、十进制、十六进制的数据表示法。下面先来介绍一下进制中的基本概念: 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

用Windows计算器进行小数数制转换的方法

用Win7和Win8的计算器实现小数数制转换的方法 北京师范大学珠海分校林昌华 微软Windows XP、Win7和Win8操作系统附件中的计算器只能进行整数之间的数制转换,不能进行小数之间的数制转换。Win7和Win8的计算器更是将Windows XP计算器里的二进制、八进制和十六进制计算从科学型模式搬移到了程序员模式,十进制计算仍然保留在科学型模式里。这种变化给小数之间的数制转换带来了更多的麻烦。 作者在2012年推出了利用Windows XP的计算器进行小数数制之间转换的方法。在此基础上,作者又研究出利用Win7和Win8附件中的计算器进行十进制小数与二进制、八进制和十六进制小数转换的方法。希望对有需要的读者有所帮助。 对于二进制、八进制和十六进制小数相互之间的转换,可以先将它们转换成十进制小数,然后再将十进制小数转换成相应的非十进制小数。 1.十进制小数转换成非十进制的R进制小数的数学原理和方法 首先确定作为转换目标的非十进制的R进制数(z.x)R需要保留的小数位数i。于是可以写出数学转换公式:[(z.x)D· R i ] · R-i ≈Z D ·R-i =Z R ·R-i =(z.x)R 按照上述公式揭示的数学转换原理利用计算器进行转换操作的方法如下: a)利用计算器的科学型模式,将十进制数(z.x)D乘以R i 。如果积有小数,将小数部分四 舍五入到个位,得到一个十进制整数Z D。 b)利用计算器的程序员模式,将Z D转换成R进制整数Z R。 c)将R进制整数Z R的小数点(默认在个位右侧)向左移动i位,得到转换结果(z.x)R。 1.1 将十进制小数转换成二进制小数的方法 例1.1,转换(865.1277)D→(含12位小数)B方法如下。以下的1)、2)、3)在计算器的科学型模式下操作;4)、5)、6)在计算器的程序员模式下操作;7)手动点小数点。 1)如图1.1.1,点击“查看”→“科学型”→计算212×865.1277=3543563.0592。 2)如图1.1.2,将计算结果3543563.0592减去小数0.0592。 3)如图1.1.3,点击“=”,仅保留整数3543563。鼠标右键点击计算器显示框→“复 制”。准备将十进制整数3543563粘贴到程序员模式。 4)如图1.1.4,点击“查看”→“程序员”。 5)如图1.1.5,点击“十进制”→右键点击计算器显示框→“粘贴”。将3543563粘 贴到程序员模式显示框。 6)如图 1.1.6,点击“二进制”,得到3543563转换成的二进制整数 (1101100001001000001011)B。 7)将小数点向左移动12位,即将其乘以2-12,得到最终转换结果为 (1101100001.001000001011)B。 图1.1.2 减去小数0.059

进制之间的转换

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

进制转换计算器

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

计算机进制之间的转换

计算机中常用的数制 一、几种常用的进位计数制 1.十进制 (10个基本数码:0、1、2、3、4、5、6、7、8、9) 2.二进制(2个基本数码:0、1) 3.八进制(8个基本数码:0、1、2、3、4、5、6、7) 4.十六进制(16个基本数码:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F)二、计算机常用的各种进制数的特点 三、不同进位计数制间数据的转化 1.二进制数转换成十进制数 方法:采用每位二进制数乘以相应位的基数幂再相加。 注意:整数部分权由0,1,2依次展开,小数部分权由-1,-2依次展开。遇0时可以省略,因为0乘以任何数都为0。 例题:把二进制111010和101.101转换成十进制数。 (111010)2=1ⅹ25+1ⅹ24+1ⅹ23+1ⅹ21=(58)10 (101.101)2=1ⅹ22+1ⅹ20+1ⅹ2-1+1ⅹ2-3=(5.625)10

2.十进制数转换成二进制数 方法:整数部分“除2取余法”,小数部分“乘2取整法” 注意:整数部分在取余数时,从后向前取,小数部分从前向后取。例题:把十进制205.8125转换成二进制数。 整数部分205转换过程如下:小数部分0.8125转换过程如下: (205.8125)10=(11001101.1101)2

3.十进制数转换成八进制数 方法:整数部分“除8取余法”,小数部分“乘8取整法” 注意:整数部分在取余数时,从后向前取,小数部分从前向后取。例题:把十进制1645.6875转换成八进制数。 (1645.6875)10=(3155.54)8

4.十进制数转换成十六进制数 方法:整数部分“除16取余法”,小数部分“乘16取整法” 注意:整数部分在取余数时,从后向前取,小数部分从前向后取。例题:把十进制205.21875转换成十六进制数。 (205.21875)10=(CD.38)16

相关文档
相关文档 最新文档