首页 > 代码库 > python的进制转换二进制,八进制,十六进制及其原理
python的进制转换二进制,八进制,十六进制及其原理
#!usr/bin/env python
# coding:utf-8
def binary():
‘‘‘二进制的方法与算法‘‘‘
Number = 10
Number1 = 20
Number2 = 30
print bin(Number),type(bin(Number1)),bin(Number2)
#用十进制算法来表示二进制
# 除余法:10%2=0放入字符串个位‘0‘,5%2=1放入字符串的十位‘10‘,2%2=0放入百位‘010‘,最后余数放入千位‘1010‘
l = []
while Number>0:
l.insert(0,str(Number%2)) #临时列表l每次从左插入计算后的余数
Number /= 2 #每次把Number除法的结果返回判断循环
print l
s = ‘‘.join(l) #列表转换字符串循环
print s
def octonary():
‘‘‘八进制的方法与算法‘‘‘
Number = 10
Number1 = 20
Number2 = 30
print oct(Number),oct(Number1),oct(Number2)
# 除余法:10%8=2放入字符串个位‘2‘,余数放入十位‘12‘
l = []
while Number>0:
l.insert(0,str(Number%8))
Number /= 8
print l
s = ‘‘.join(l)
print s
def hexadecimal():
‘‘‘十六进制的方法与算法‘‘‘
Number = 30
Number1 = 20
Number2 = 50
print hex(Number),hex(Number1),hex(Number2)
# 除余法:30%16=14由于个位数上大于10放入会不好识别,所以用字母代替a=10,b=11,c=12,d==13,e=14,f=15
# 放入字符串个位‘e‘,余数放入十位‘1e‘
l = []
while Number>0:
n=str(Number%16) #除余的数赋值变量n后面比对
l.insert(0,n)
Number /= 16
if n==‘10‘: l[0]=‘a‘ #比对n是否为两位数10转换字符a
elif n==‘11‘:l[0]=‘b‘ #以下同理
elif n==‘12‘:l[0]=‘c‘
elif n==‘13‘:l[0]=‘d‘
elif n==‘14‘:l[0]=‘e‘
elif n==‘15‘:l[0]=‘f‘
print l
s = ‘‘.join(l)
print s
if __name__=="__main__":
binary()
octonary()
hexadecimal()
python的进制转换二进制,八进制,十六进制及其原理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。