怎么转换二进制,八进制,十进制和十六进制啊?

来源:百度知道 编辑:UC知道 时间:2024/05/12 09:37:38
具体的转换式和方法,谢谢!
好的可以加分!
最好能详细些的
我是菜鸟

分三种情况:
一,非十进制和十进制互转。
二,二进制转八进制(十六进制),八进制(十六进制)转二进制。
三,八进制和十六进制互转。

分三种情况是因为算法上不尽相同,有的是很简单的算术,有的则是比较繁琐的。

第一种情况的解决办法:
十进制转非十进制:先对进制数整除取余,在将获得的余数逆序排列。所得的数就是所要的。举例:165(十进制)转八进制:
165/8=20 余 5
20/8=2余4
2/8=0余2
所得的八进制数就是245.
非十进制转十进制:计算位权与数的积的总和。关于位权,很好理解,就是所在位上的数的价值。对于二进制数10110来说,位权分别为2^4,2^3,2^2,2^1,2^0(符号^代表幂,这你应该知道)。八进制数674的位权分别是8^2,8^1,8^0,对于这个八进制数转成十进制,结果就是6*8^2+7*8^1+4*8^0=444.

第二种情况的解决办法:二进制和八进制及十六进制关系很近,所以单列出一个快速的方法。

对于二进制转八进制:将二进制数从个位开始每三位分一段,将每一段计算成十进制,将这些十进制按原序排列所得的就是八进制数。比如1101110110,分段后为 1 101 110 110,最前一段可能不足三位,补零就行了。所得数为1 5 6 6,结果就是1566.
对于二进制转十六进制:和二进制转八进制类似,不过分段式四位而不是三位,另 计算结果应该有超过10的结果,在十六进制里用abcdef分别代表 10 11 12 13 14 15.比如11111011001,分段为 111 1101 1001,结果是7 13 9,十六进制数就是7d9.
对于八进制(十六进制)转二进制就是将上述方法逆回去。对于单个位的数转二进制你应该没问题吧,比如 4=100,9=1001.八进制(十六进制)转二进制就是将数位拆开,单个转二进制,所得的就是所要的了。例如16进制数8f7=8 15 7=1000 1111 0111,结果就是100011110111。八进制转二进制是三位的。

第三种情况的解决办法:这个最繁琐了,你先将八进制(十六进制)转