您的位置:首页 > 其它

进制相互转化的算法公式

2017-09-04 17:24 871 查看


对于整数:有四种表现形式 

二进制:0,1 逢二进一

八进制:0-7
逢八进一,用0开头表示 

十进制:0-9
逢十进一

十六进制:0-9,A-F (A :10 B:11 递增)逢十六进一,0x表示

逢十进一:在生活中,0-9是一位数,9加一就是10(二位数)了,这就叫逢十进一、

逢二进一:1就是最大位,打过1就要进一位,例如:
1+1=10 ,1+1+1=11。

进制转换


例如:进制数转十进制  1011.01

从小数点始,以0为开始数,小数点左面有四位 对应: 1,1,0,1;小数点右面有两位 对应:0,1。

如果1011.01是二进制的,

1011.01 = 1*2^3 + 0*2^2 + 1*2^1 + 1*2^0 + 0*2^-1 + 1*2^-2 =
11(十进制)其中 2为基数。

1*2^3 这里1代表 1011.01 中的 最高位(个十百千的位) ,2代表 要转化的进制,3是从小数点起往左计数从0开始,这里的最高位就是3

0*2^2 这里0代表 1011.01 中的 第二高位就是百位,2代表
要转化的进制,2是从小数点起往左计数从0开始,百位为2。

以此类推。

同理,如果1011是八进制的,那么 8为基数

1011 =1*8^3 + 0*8^2 + 1*8^1 + 1*8^0
= 521(十进制)。

ok,那么十进制如何转成二进制的?

以十进制的11.875为例
先取出整数 11

11/
2 = 5 ... 1

5/2
= 2 ... 1

2/2
= 1 ... 0

1/2=
0 ...1

既 (11)10  = (1011)B

再取出小数 以0.875

0.875*2 = 1.75     1

0.75*2 = 1.5         1

0.5*2 = 1              1

既 (0.875)10  = (0.111)B

所以(11.875)10 = (1011.111)B

其中2为基数,进制转换只需要改变基数就行了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  进制