进制也就是进位计数制,是人为定义的带进位的计数方法(有不带进位的计数方法,比如原始的结绳计数法,唱票时常用的“正”字计数法,以及类似的tally mark计数)。 对于任何一种进制——X进制,就表示每一位置上的数运算时都是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。
常见进制:
1,十进制:十进制编码几乎就是数值本身。十进制的基数为10,数码由0-9组成,计数规律逢十进一。对于十进制数可以不加标注,或加后缀D,其中D是英文十进制Decimal的首字母D。
2,二进制:二进制有两个特点:它由两个数码0,1组成,二进制数运算规律是逢二进一。为区别于其它进制,二进制数的书写通常在数的右下方注上基数2,或在后面加B表示,其中B是英文二进制Binary的首字母。例如:二进制数10110011可以写成(10110011)2,或写成10110011B。
二进制数的加法和乘法基本运算法则各有四条,如下:
0+0=0,0+1=1,1+0=1,1+1=10
0×0=0,0×1=0,1×0=0,1×1=1
3,八进制:由于二进制数据的基数R较小,所以二进制数据的书写和阅读不方便,为此,在小型机中引入了八进制。八进制的基数R=8=2^3,有数码0、1、2、3、4、5、6、7,并且每个数码正好对应三位二进制数,所以八进制能很好地反映二进制。八进制用下标8或数据后面加O表示 例如:二进制数据 ( 11 101 010 . 010 110 100 )2 对应八进制数据 (352.264)8或352.264O。
4,十六进制:十六进制数有两个基本特点:它由十六个数码:数字0~9加上字母A-F组成(它们分别表示十进制数10~15),十六进制数运算规律是逢十六进一,即基数R=16=2^4,通常在表示时用尾部标志H或下标16以示区别,在c语言中用添加前缀0x以表示十六进制数。例如:十六进制数4AC8可写成(4AC8)16,或写成4AC8H。
5,七进制:七进制是以7为底数的记数系统。使用数字0-6。
数制转换的一般化:
1)R进制转换成十进制
任意R进制数据按权展开、相加即可得十进制数据。例如:N = 1101.0101B = 1*2^3+1*2^2+0*2^1+1*2^0+0*2^-1+1*2^-2+0*2^-3+1*2^-4 = 8+4+0+1+0+0.25+0+0.0625 = 13.3125
N = 5A.8H = 5*16^1+A*16^0+8*16^-1 = 80+10+0.5 = 90.5
2)十进制转换R 进制
1.整数转换——除R 取余法 规则:(1)用R 去除给出的十进制数的整数部分,取其余数作为转换后的R 进制数据的整数部分最低位数字; (2)再用R去除所得的商,取其余数作为转换后的R 进制数据的高一位数字; (3)重复执行(2)操作,一直到商为0结束。例如:115 转换成 Binary数据和Hexadecimal数据 ,所以 115 = 1110011 B = 73 H
2.小数转换————---乘R 取整法 规则:(1)用R 去乘给出的十进制数的小数部分,取乘积的整数部分作为转换后R 进制小数点后第一位数字; (2)再用R 去乘上一步乘积的小数部分,然后取新乘积的整数部分作为转换后R 进制小数的低一位数字; (3)重复(2)操作,一直到乘积为0,或已得到要求精度数位为止。
3.小数转换——整数退位法:举例:0.321d转成二进制,由于321不是5的倍数,用取余法、取整法可能要算很久,这时候我们可以采用整数退位法。原理如下:
n为转成的二进制数的小数位数
(x)10=(y)2
(x)10*2^n=(y)2*2^n
D=(x)10*2^n:计算10进制数,取整
D→T转成2进制数
(y)2=T/2^n=T*2^(-n),T退位,位数不足前端补零
举例:
0.321转成二进制数,保留7位
0.321*2^7=41.088,取整数41
41=32+8+1即100000+1000+1=101001
退位,因只有6位而要求保留7位,所以是0.0101001
用在线转换工具校验,正确
1、十进制的131转化成七进制数
131(十)=18*7+5=(2*7+4)*7+5=2*7^2+4*7^1+5=245(七)
2、七进制数245转化成十进制数
245(七)=2*7^2+4*7^1+5=2*49+4*7+5=98+28+5=131(十)
网友评论