admin管理员组文章数量:1794759
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手写进制转换(本文仅探讨从十进制转二进制,八进制,十六进制) 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686576435a83694.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论