一、十进制数
十进制数是日常生活中使用最广的计数制。组成十进制数的符号有0,1,2,3,4,5,6,7,8,9等共十个符号,我们称这些符号为数码。
在十进制中,每一位有0~9共十个数码,所以计数的基数为10。超过9就必须用多位数来表示。十进制数的运算遵循:加法时:“逢十进一”;减法时:“借一当十”。
十进制数中,数码的位置不同,所表示的值就不相同。
式中,每个对应的数码有一个系数1000,100,10,1与之相对应,这个系数就叫做权或位权。十进制数的位权一般表示为:10n-1
式中,10为十进制的进位基数;10的i次为第i位的权;n表示相对于小数点的位置,取整数;当n位于小数点的左边时,依次取n=1、2、3……n。位于小数点的右边时,依次取n=-1、-2、-3……因此,634.27可以写为:
634.27=6×102+3×101+4×100+2×10-1+7×10-2
在正常书写时,各数码的位权隐含在数位之中,即个位、十位、百位等。
二、二进制
电子计算机处理的信息,都是仅用“0”与“1”两个简单数字表示的信息,或者是用这种数字进行了编码的信息。这种数制叫做二进制。要了解计算机,首先要了解计算机中数的表示方法。
为了区别不同数制表示的数,通常用右括另外下标数字或字母表示数制,十进制数用D表示,二进制用B表示,十六进制数用H表示,八进制用O表示。
二进制计算法的特点:①二进制数只有“0”和“1”两个数码,基数是2,最大的数字是1;②采用逢二进一的原则。
二进制的位权一般表示为:2n-1。各位的权为以2为底的幂。例如,(01101010)各位的权自至在依次为27、26、25、24、23、22、21、20。
二进制数的算术四则运算规则,除进、借位外与十进制数相同。
■二进制加法规则
0+0=0 1+0=1
0+1=1 1+1=10(红色为进位位)
■二进制减法规则
0-0=0 0-1=1-借位
1-0=1 1-1=0
■二进制乘法规则
0×0=0 1×0=0
0×1=0 1×1=1
为了区别于十进制数,在书写时二进制数可以用两种方法表示:例如:(1011.01)2或1011.1B。
例如:写出(1011.01)2的十进制数表达式。
(1011.01)2=1×23+0×22+1×21+1×20+0×2-1+1×2-2=(11.25)10
二进制的优点是:
■二进制只有“0”和“1”两数字,很容易表示。电压的高和低、 晶体管的截止与饱和、磁性材料的磁化方向等都可以表示为“0”和“1”两种状态。
■二进制数的每一位只有0和1两状态,只需要两种设备就能表示, 所以二进制数节省设备。由于状态简单,所以抗干扰力强,可靠性高。
二进制的主要缺点是数位太长,不便阅读和书写,人们也不习惯。为此常用八进制和十六进制作为二进制的缩写方式。为了适应人们的习惯,通常在计算机内都采用二进制数,输入和输出采用十进制数,由计算机自己完成二进制与十进制之间的相互转换。
三、十六进制数
二进制数在计算机系统中处理很方便,但当位数较多时,比较难记忆及书写,为了减小位数,通常将二进制数用十六进制表示。
十六进制是计算机系统中除二进制数之外使用较多的进制,其计数法的特点为:
①有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F等共十六个数码,其分别对应于十进制数的0~15;
②十六进制数的加减法的进/借位规则为:借一当十六,逢十六进一。
十六进制数的位权一般表示为:16n-1。其中16是十六进制的进位基数,n表示相对小数点的位置。在书写时,用加注16或H的方式表示十六进制数,例如:(8FA.5)16或8FA.5H。
例如:写出(8FA.5)16的十进制数表达式。
(8FA.5)16=8×162+15×161+10×160+5×16-1=(2298.3125)10
四、八进制数
八进制计数法的特点是:
有八个不同的计算符号0、1、2、3、4、5、6、7,这八个符号称为数码。
采用逢八进一的原则。对应于十进制数0、1、2、3、4、5、6、7、8,八进制数分别记作0、1、2、3、4、5、6、7、8、10。
下表列出了十进制0~16对应的二进制数和十六进制数。
十进制数 二进制数 十六进制数
0 0000 0
1 0001 1
2 0010 2
3 0011 3
4 0100 4
5 0101 5
6 0110 6
7 0111 7
8 1000 8
9 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F
16 10000 10
五、十进制数转化为非十进制数
十进制转换数转换为非十进制数时,可将其分为整数部分和小数部分分别进行转换,最后将结果合并为目的数。
● 整数部分的转换
整数部分的转换是采用除基取余法。所谓除基取余法就是用欲转换的数据的基数去除十进制数的整数部分,第一次除取得的余数为目的数的最低位,把得到的商再除以该基数,所得余数为目的数的次低位,依此类推,继续上面的过程,直到商为0时,所得余数为目的数的最高位。
例 将十进制53D转换为二进制数(7-2)。
53D=110101B
●小数部分的转换
小数部分的转换是采用乘基取整法。所谓乘基取整法就是用该小数乘上目的数制的基数,第一次乘得结果的整数部分为目的数的小数部分的最高位,其小数部分再乘上基数,所得结果的整数部分为目的数的次高位,依此类推,继续上述的过程,直到小数部分为0或达到要求的精度为止。
从上面可以看出该数在转换为二进制时,尽管已经过了解5次相乘,但其小数位还存在,由于题目要求保留小数后4位,故结果为:0.736D≈0.1011B或0.736D≈0.1100B。
六、非十制数转换成十进制数
由于任一数都可以按权展开,于是很容易将一个非十进制数转换为相应的十进制数。具体的步骤是:将一个非十进制按权展开成一个多项式,每项是该位的数码与相应的权之积,把多项式按十进制数的规则进行计算机求和,所得结果即是该数的十进制。
七、二进制与十六进制数的相互转换
四位二进制数共有十六种组合,而十六种组合正好与十六进制的十六种组合一致,故每四位二进制数对应于一位十六进制数,因此二进制数与十六进制之间的转换非常简单。下面通过两个例子来说其转换:
从上面例子可以总结出两种进制转换的方法:
★二进制转换为十六进制时:只要将二进制数的整数部分自右向左每四位一组,最后不足四位的用零补足;小数部分则自左向右每四位一组,最后不足四位时在右边补零。再把每四位二进制数对应的十六进制数写出来即可。
★十六进制数转换为二进制数的正好与此相反,只要将每位的十六进制数对应的四位二进制写出来即行了。
常用编码
BCD编码
在数字系统中,各种数据要转换为二进制代码才能进行处理,而人们习惯于使用十进制数,所以在数字系统的输入输出中仍采用十进制数,这样就产生了用四位二进制数表示一位十进制数的方法,这种用于表示十进制数的二进制代码称为二-十进制代码(Binary Coded Decimal),简称为BCD码。它具有二进制数的形式以满足数字系统的要求,又具有十进制的特点(只有十种有效状态)。在某些情况下,计算机也可以对这种形式的数直接进行运算。常见的BCD码表示有以下几种。
8421BCD编码
这是一种使用最广的BCD码,是一种有权码,其各位的权分别是(从最有效高位开始到最低有效位)8,4,2,1。
例 写出十进数563.97D对应的8421BCD码。
563.97D=0101 0110 0011 . 1001 01118421BCD
例 写出8421BCD码1101001.010118421BCD对应的十进制数。
1101001.010118421BCD=0110 1001 . 0101 10008421BCD=69.58D
在使用8421BCD码时一定要注意其有效的编码仅十个,即:0000~1001。四位二进制数的其余六个编码1010,1011,1100,1101,1110,1111不是有效编码。
2421BCD编码
2421BCD码也是一种有权码,其从高位到低位的权分别为2,4,2,1,其也可以用四位二进制数来表示一位十进制数。其编码规则如下表。
余3码
余3码也是一种BCD码,但它是无权码,但由于每一个码对应的8421BCD码之间相差3,故称为余3码,其一般使用较少,故正须作一般性了解,具体的编码如下表。
常见BCD编码表
十进制数 8421BCD码 2421BCD码 余3码
0 0000 0000 0011
1 0001 0001 0100
2 0010 0010 0101
3 0011 0011 0110
4 0100 0100 0111
5 0101 1011 1000
6 0110 1100 1001
7 0111 1101 1010
8 1000 1110 1011
9 1001 1111 1100
10 0001,0000 0001,0000 0100,0011
格雷反射码(循环码)
格雷码是一种无权码,其特点是任意两个相邻的码之间只有一个数不同。另外由于最大数与最小数之间也仅一个数不同,故通常又叫格雷反射码或循环码。
十进制数 二进制数 格雷码 十进制数 二进制数 格雷码
0 0000 0000 8 1000 1100
1 0001 0001 9 1001 1101
2 0010 0011 10 1010 1111
3 0011 0010 11 1011 1110
4 0100 0110 12 1100 1010
5 0101 0111 13 1101 1011
6 0110 0101 14 1110 1001
7 0111 0100 15 1111 1000
================
一)、数制
计算机中采用的是二进制,因为二进制具有运算简单,易实现且可靠,为逻辑设计提供了有利的途径、节省设备等优点,为了便于描述,又常用八、十六进制作为二进制的缩写。
一般计数都采用进位计数,其特点是:
(1)逢N进一,N是每种进位计数制表示一位数所需要的符号数目为基数。
(2)采用位置表示法,处在不同位置的数字所代表的值不同,而在固定位置上单位数字表示的值是确定的,这个固定位上的值称为权。
在计算机中:D7 D6 D5 D4 D3 D2 D1 D0 只有两种0和1
8 4 2 1
二)、数制转换
不同进位计数制之间的转换原则:不同进位计数制之间的转换是根据两个有理数如相等,则两数的整数和分数部分一定分别相等的原则进行的。也就是说,若转换前两数相等,转换后仍必须相等。
有四进制
十进制:有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 ----最右位
2 15 ….1
2 7 ….1
2 3 ….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
把一个八进制转换成十进制采用方法:把这个八进制的最后一位乘上80,倒数第二位乘上81,……,一直到最高位乘上8n,然后将各项乘积相加的结果就它的十进制表达式。
把八进制36转换为十进制
(36)8=3*81+6*80=24+6=(30)10
把一个十六进制转换成十进制采用方法:把这个十六进制的最后一位乘上160,倒数第二位乘上161,……,一直到最高位乘上16n,然后将各项乘积相加的结果就它的十进制表达式。
把十六制1E转换为十进制
(1E)16=1*161+14*160=16+14=(30)10
3、二进制转换成八进制数
(1)二进制数转换成八进制数:对于整数,从低位到高位将二进制数的每三位分为一组,若不够三位时,在高位左面添0,补足三位,然后将每三位二进制数用一位八进制数替换,小数部分从小数点开始,自左向右每三位一组进行转换即可完成。例如:
将二进制数1101001转换成八进制数,则
(001 101 001)2
| | |
( 1 5 1)8
( 1101001)2=(151)8
(2)八进制数转换成二进制数:只要将每位八进制数用三位二进制数替换,即可完成转换,例如,把八进制数(643.503)8,转换成二进制数,则
(6 4 3 . 5 0 3)8
| | | | | |
(110 100 011 . 101 000 011)2
(643.503)8=(110100011.101000011)2
4、二进制与十六进制之间的转换
(1)二进制数转换成十六进制数:由于2的4次方=16,所以依照二进制与八进制的转换方法,将二进制数的每四位用一个十六进制数码来表示,整数部分以小数点为界点从右往左每四位一组转换,小数部分从小数点开始自左向右每四位一组进行转换。
(2)十六进制转换成二进制数
如将十六进制数转换成二进制数,只要将每一位十六进制数用四位相应的二进制数表示,即可完成转换。
例如:将(163.5B)16转换成二进制数,则
( 1 6 3 . 5 B )16
| | | | |
(0001 0110 0011. 0101 1011 )2
(163.5B)16=(101100011.01011011)2
分享到:
相关推荐
"进制数转换" 进制数转换是计算机科学中的一种重要概念,涉及到不同进制数之间的转换方法。本文将从基本概念到进制数转换规则,详细解释二进制、八进制、十进制、十六进制之间的转换方法。 一、基本概念 在计算机...
二进制数与十六进制数是两种不同的数值表示方式,它们在计算机科学中有着广泛的应用。二进制数(Binary Number)基于2的幂次展开,只包含0和1两个数字;而十六进制数(Hexadecimal Number)是基于16的幂次展开,使用...
数值转换(从键盘读入二个五位十进制数,并将这二个十进制数分别转换为二进制数,然后求其和,再将和以十进制形式进行显示) 从键盘读入二个五位十进制数(1位符号位+4位数值位),并将这二个十进制数分别转换为二...
将十进制数转换为二进制数通常采用除2取余法,即将十进制数不断除以2并记录每次的余数,直到商为0为止,然后将余数倒序排列即得到对应的二进制数。 #### 3. 汇编语言8086 8086是Intel公司开发的一种微处理器架构,...
本课程设计的重点是探讨如何在汇编语言中实现二进制数与十进制数之间的转换。 首先,我们要理解二进制数系统,它是计算机内部运算的基础。二进制数由0和1组成,每一位代表2的幂次。例如,二进制数1011表示1*2^3 + 0...
本文将详细解释将任意一个十进制数转换成n(16以内)进制的相对应数的知识点。 标题解释 标题“将任意一个十进制数转换成n(16以内)进制的相对应数”表明了本程序的主要功能,即将十进制数转换成其他进制数(≤16...
本实验涉及的核心知识点是将ASCII码表示的十进制数转换为二进制数。首先,我们需要理解ASCII码和十进制数,以及如何用二进制来表示它们。 ASCII(American Standard Code for Information Interchange,美国信息...
如十进制数13转换为二进制:\(13 \div 2 = 6...1\),\(6 \div 2 = 3...0\),\(3 \div 2 = 1...1\),\(1 \div 2 = 0...1\),所以13的二进制表示是1101。 3. **二进制到八进制/十六进制**: 首先将二进制数按每三位...
有时我们需要将十进制数转换成其他进制,比如八进制、十六进制或者任意进制r。本篇将详细讲解如何用Java编程语言实现将十进制数N转换为任意进制r的数,并以N=3456,r=8为例进行具体阐述。 首先,让我们理解辗转相除...
### 十六位二进制数转换为十六进制数并输出 在计算机科学与技术领域,数制转换是一项基础而重要的技能。本篇将基于提供的汇编代码示例,详细解析如何将一个十六位的二进制数转换成十六进制数,并将其输出到屏幕上。...
根据给定的文件信息,本篇文章将围绕C语言编程题展开,主要介绍如何从键盘接收一个十进制数,并将其转换成二进制、八进制以及十六进制数进行输出的方法。 ### 一、问题描述 题目要求通过C语言编程实现从键盘输入一...
本文将深入探讨如何将十进制整数转换为十六进制数,这在处理二进制数据、内存表示以及计算机通信等领域都有广泛应用。 首先,我们需要理解十进制和十六进制的基本概念。十进制是我们日常生活中最常用的计数系统,它...
根据给定的文件信息,我们将深入探讨如何在C语言中实现二进制、八进制以及十六进制数转换为十进制数的算法,并将其封装到一个实用的函数中。 ### C语言实现多进制转十进制的算法 #### 1. 理解进制转换的基本原理 ...
浮点数与十进制数转换是计算机科学中常见的数据处理任务,特别是在数值计算、编程以及数据解析等领域。本文将详细探讨浮点数与十进制数之间的转换原理及其在实际应用中的重要性。 首先,浮点数是一种表示实数的方式...
十六进制数转换成十进制数的函数
标题与描述均提到了在汇编语言中,如何将DX寄存器中的二进制数(3F2EH)以十六进制的形式显示在屏幕上,并随后进行换行操作,以及统计该二进制数中“1”的个数,将结果保存在BL寄存器,并同样显示在屏幕上。...
根据给定文件的信息,本文将详细介绍如何实现一个数值转换函数,该函数能够将一个十进制整数转换为16进制以内的任意进制数。我们首先从基础概念出发,然后逐步深入到具体的实现细节。 ### 基础概念 在计算机科学中...
### 使用汇编语言实现输入一个十进制数,显示对应的十六进制 #### 背景与目标 在计算机科学领域,数据表示和转换是非常重要的基础技能之一。本例通过编写汇编语言程序来实现从键盘接收一个4位十进制正数,并将其...
### 顺序栈实现非负十进制数到B进制数的转换 #### 背景与概述 在计算机科学中,数据的表示和转换是非常基础且重要的概念。本篇文章介绍了一个利用顺序栈来实现非负十进制整数转换为其他进制数的程序。该程序使用...
在“十六进制数和十进制数相互转换”的课程设计中,学生通常会学习如何用汇编语言编写程序来实现这两种数值表示方式的转换。以下是关于这个主题的详细知识点: 1. **数制转换基础**: - **十进制(Decimal)**:...