#!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()
时间: 2024-10-21 02:30:32