zoukankan      html  css  js  c++  java
  • 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()

  • 相关阅读:
    Swift
    iOS 拨打电话
    UI控件问题和XCode编译警告和错误解决方法集锦 (持续更新ing)
    让UIWebView弹出键盘上的按钮显示中文 (附效果图)
    启动app时全屏显示Default.png (附效果图)
    三种数据存储 (plist,NSUserDefaults存储,NSKeyedArchiver存模型方法)
    生成圆形头像 (附效果图)
    循环按钮,并且选中 (附效果图)
    leetcode 字符串分割对称
    leetcode merge-sorted-array/
  • 原文地址:https://www.cnblogs.com/cookie1026/p/6052878.html
Copyright © 2011-2022 走看看