了解计算机各进制及其转换关系
一、计数系统
在基数b的位置记数系统(其中b是一个正自然数,叫做基数),b个基本符号(或者叫数字)对应于包括0的最小b个自然数。一般来讲,b进制系统中的数有如下形式:
- 二进制数据的位置计数法
对于有n位整数,m位小数的二进制数据用加权系数展开式表示,可写为:
二进制数据一般可写为:
【例】:将二进制数据111.01写成加权系数的形式
二、通用进制转换
余数定理(Polynomial remainder theorem)是指一个多项式除以一个线性多项式(x-a)的余数是 f(a)。若f(a)=0,则(x-a)为多项式f(x)的因式。例如,(5x³+4x²-12x+1)/(x-3) 的余式是 5·3³+4·3²-12·3+1=136
不同进制之间的转换本质就是确定各个不同权值位置上的数码。转换正整数的进制的有一个简单算法,就是通过用目标基数作长除法;余数给出从最低位开始的“数字”
【例】1020304从10进制转到7进制:
【例】10110111 从2进制到5进制:
三、二进制(Binary)
1679年德国数学家莱布尼茨发现二进制并完善了二进制系统,在数字电路中值得是以2为基数的记数系统逻辑门的实现使得二进制被应用于计算机技术中,每个数字被称为一个比特(Bit,Binary digit)
1、计算机采用二进制的原因
- 二进制仅有两个数码(0和1),任何具有两个不同稳定状态的元件都可以用二进制数码来表示,如开关的“开”、“关”,电压“高”、“低”,纸带“有孔”、“无孔",电路”有信号“、”无信号“,磁性材料”南极“、北极”等,这两种稳定状态在在质与量上差别明显,该特性大大提高机器的抗干扰性,提高数据的可靠性
- 二进位计数制四则运算规则简单可归结与加法运算和移位,使得电子计算机中的运算线路变得简单
- 采用二进制表示数可以节省设备
- 可以用布尔代数来分析综合机器中的逻辑线路
2、二进制四则运算
二进制加法的四种情况:0+0=0,0+1=1,1+0=1,1+1=10(满二进一)
二进制减法有四种情况:0-0=0,1-0=1,0-1=1,1-1=0
二进制乘法有四种情况: 0×0=0,1×0=0,0×1=0,1×1=1
二进制除法有两种情况(除数只能为1):0÷1=0,1÷1=1
两个二进制数1001与0101的算术运算:
3、二进制数的转换
- 二进制转换为十进制
方法:按权展开求和”,该方法的具体步骤是先将二迸制的数写成加权系数展开式,而后根据十进制的加法规则进行求和
【例】: - 二进制转换为十六进制
二进制转换成十六进制的方法是,取四合一法,即从二进制的小数点为分界点,向左(或向右)每四位取成一位
【例】100101111010001B转换为二进制数
**注意:**在向左(或向右)取四位时,取到最高位(最低位)如果无法凑足四位,就可以在小数点的最左边(或最右边)补0,进行换算
【例】10111.011B转换成十六进制
四、十进制(Decimal)
人类算数采用十进制,可能跟人类有十根手指有关。亚里士多德称人类普遍使用十进制,只不过是绝大多数人生来就有10根手指这样一个事实的结果
| 整数部分 | 小数部分 |
|---|---|
| 10^0(十的零次方) 一 | |
| 10^1 十 | 10-1 分 |
| 10^2百 | 1^-2厘 |
| 10^3千 | 10^-3毫 |
| 10^4万 | 10^-4丝 |
| 10^5十万 | 10^-5忽 |
| 10^6百万(兆) | 10^-6微 |
| 10^9十亿(吉) | 10^-9尘(纳) |
| 10^太 | 10^-12 漠(皮) |
1、十进制数转换为二进制数
由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并
- 十进制整数转换为二进制整数 十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来
- 十进制小数转换为二进制小数
十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止
2、十进数转换成十六进制数
采用余数定理进行分解,例如将转成十六进制:
4877÷16=304…13(D)
304÷16=19…0
19÷16=1…3
1÷16=0…1
这样就得到487710=130DH
五、十六进制(Hexadecimal)
十六进制(简写为hex或下标16)在数学中是一种逢16进1的进位制。一般用数字0到9和字母A到F(或af)表示,其中:AF表示10~15,这些称作十六进制数字
在历史上,中国曾经在重量单位上使用过16进制,比如,规定16两为一斤。如今的16进制则普遍应用在计算机领域,这是因为将4个位元(Bit)化成单独的16进制数字不太困难。1字节可以表示成2个连续的16进制数字。可是,这种混合表示法容易令人混淆,因此需要一些字首、字尾或下标来显示
1、十六进制的表示
其中最常用(或常见)表示十六进制数值的方式是将 ‘0x’ 加在数字前,或在数字后加上小字 16。例如 0x2BAD 和 2BAD16都是表示十进制的11181(或1118110)
在网页设计上十六进制是很常用的,HTML和CSS使用十六进制的表示法来表示网页上的特定颜色。使用 # 的符号来表示而非用个别的符号表示十六进制。24-bit 颜色可以用 #RRGGBB 的格式来表示,RR 是颜色中红色成分的数值,GG 是颜色中绿色成分的数值,BB 颜色中蓝色成分的数值。举个例子, 红色的阴影是十进制 238,9,63 可以编成 #EE093F
2、十六进制数转换为二进制数
十六进制数转为二进制数,方法就是一分四,即一个十六进制数分成四个二进制数,用四位二进制按权相加,最后得到二进制,小数点依旧就可以采用该方法
【例】BF4.B5转换成二进制数
3、十六进制数转换成十进制数
3、十六进制数转换成十进制数
将十六进制数写成权系数展开式,然后对该展开式进行求和即可