进制转换

如题所述

第1个回答  2022-10-11
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:

十进制、二进制、八进制、十六进制之间怎样转换

解析:

r 进制转化成十进制

公式:

举例:

101.101(B)= 1*22+0*21+1*20+1*2-1+0*2-2+1*2-3 = 4+0+1+0.5+0+0.125 = 5.625

715(O)= 7*82+1*81+5*80 = 461

A01B(H)= 10*163+0*162+1*161+11*160 = 40987

2、十进制转化成 r 进制

方法:

整数部分:除以 r取余数,直到商为0,第一个余数是r进制数的最低位,最后的余数是最高位。

小数部分:乘以 r取整数,第一个整数是r进制数的最高位,最后的整数是最低位。

举例:

100.345(D)=1100100.01011(B) 100(D)=144(O)=64(H)

2 |100 余数 0.345 取整 8 |100

2 |50 余0 最低位 * 00002 8 |12 余4 最低位

2 |25 余0 0.690 0 最高位 8 |1 余4

2 |12 余1 * 00002 2 |0 余1 最高位

2 |6 余0 1.380 1

2 |3 余0 * 00002 16 |100

2 |1 余1 0.760 0 16 |6 余4 最低位

0 余1 最高位 * 00002 16 |0 余6 最高位

2 | 1.520 1

* 00002

01.04 1 最低位

100(D)=144(O)=64(H)=1100100(B)

3、八进制和十六进制转化成二进制

每一个八进制数对应二进制的三位。每一个十六进制数对应二进制的四位。

2C1D(H)= 0010 1100 0001 1101(B) 7123(O)= 111 001 010 011(B)

2 C 1 D 7 1 2 3

4、二进制转化成八进制和十六制

整数部分:从右向左进行分组。小数部分:从左向右进行分组。

转化成八进制三位一组。 转化成十六进制四位一组。位数不足一组时用零补够。

11 0110 1110. 1101 01(B)

0011 0110 1110. 1101 0100(B) =36F.D4(H)

3 6 F D 4

1 101 101 110. 110 1(B)

001 101 101 110. 110 100(B) =1556.64(O)

1 5 5 6 6 4