admin管理员组

文章数量:1794759

python手写进制转换(本文仅探讨从十进制转二进制,八进制,十六进制)

python手写进制转换(本文仅探讨从十进制转二进制,八进制,十六进制)

python手写进制转换(本文仅探讨从十进制转二进制,八进制,十六进制)
    • 分析:
      • 二进制:
        • 代码:
      • 八进制:
      • 十六进制:
    • 小结
看了 这篇博客,就想记录一下,免得忘了。

分析: 二进制:

我们都知道,二进制就是逢2进1,但是如何把一个十进制数转化成二进制呢? 比如有一个十进制数:6,我们可以把这个十进制数除以2,得到他的商,和余数,再将得到的商除以2,得到商和余数,直到商为0. 我们可以看到,将得到的余数从下到上连起来,就是这个十进制数的二进制表达。我们去计算器里验证一下: 可以看到,跟我们的计算结果一样。 那下面,我们就可以用代码来实现了:

代码: a = int(input('请输入一个十进制的正整数:')) def er(a): s = '' while a>0: b = a//2 # a/2得到商b c = str(a%2) # a%2得到余数 c 转化为str类型 s = c+s # 直接用+运算符进行字符串连接,注意,因为余数是从下到上连接,所以是c+s a = b # 然后再将b的值赋给a,继续运算,直到a == 0 return s

这里的运算时可以化简的,我要写注释,就没有化简,化简的工作就交个你们了。

八进制:

同上

十六进制:

同上 这里需要注意一点就是,十六进制里有A,B,C,D,E,F等字样,这在十进制里是没有的,那么我们就需要建一个列表来装这些字样。

def shiliu(a): sl = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'] s = '' while a>0: b = a//16 c = a%16 s = sl[c] + s a = b return s

其实从这里可以看出来,我根本就不会化简这个代码 哭唧唧 请各位大佬帮忙化简下。哈哈

小结

根据这个方法,你可以进行任何进制的转化,比如我转一个7进制,15进制,19进制等等,都是可以的。

本文标签: 写进本文Python十六进制八进制