zoukankan      html  css  js  c++  java
  • 二进制、八进制、十进制、十六进制之间进行相互转换

    #coding = utf-8
    '''
    Created on 2015年5月28日 
    二进制、八进制、十进制、十六进制之间进行相互转换
    '''
    class nsc():
        
        hex_num={0:'0',1:'1',2:'2',3:'3',4:'4',5:'5',6:'6',7:'7',8:'8',9:'9',10:'a',11:'b',12:'c',13:'d',14:'e',15:'f'}
        num_hex={'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,'a':10,'b':11,'c':12,'d':13,'e':14,'f':15}
        
        '''二进制转十进制'''
        def bin2dec(self,num):
            #根据二进制的位数来计算
            result=0
            for i in str(num):
                result=result*2+int(i) 
            return result
        
        '''二进制转八进制'''
        def bin2oct(self,num):
            
            result = ''
            temp=list(str(num))
            insert=3-len(temp)%3
            
            while insert and insert !=3:
                temp.insert(0, 0)
                insert-=1
            
            while temp:
                result=str(int(temp.pop())*1+int(temp.pop())*2+int(temp.pop())*4)+result
            return int(result)
       
        '''二进制转十六进制'''
        def bin2hex(self,num):
            result = ''
            temp=list(str(num))
            insert=4-len(temp)%4
            
            while insert and insert!=4:
                insert-=1
                temp.insert(0, 0)
                       
            while temp:
                #TODO 格式化输出
                x=int(temp.pop())*1+int(temp.pop())*2+int(temp.pop())*4+int(temp.pop())*8
                result=self.hex_num[x]+result
            return result
        
        '''十进制转二进制'''
        def dec2bin(self,num):
            #除2取余,逆序排列
            result=''
            temp=[]
            while num:
                temp.append(num%2)
                num=num//2
            while temp:
                result+=str(temp.pop())
            return int(result)
        
        '''十进制转八进制'''
        def dec2oct(self,num):
            return self.bin2oct(self.dec2bin(num))
        
        '''十进制转十六进制'''
        def dec2hex(self,num):
            return self.bin2hex(self.dec2bin(num))
        
        '''十六进制转二进制'''
        def hex2bin(self,num):
            hex_n=list(str(num))
            result=''
            for i in hex_n:
                result+=str(self.dec2bin(self.num_hex[i]))
            return result
             
        '''十六进制转八进制'''
        def hex2oct(self,num):
            return self.bin2oct(self.hex2bin(num))
        
        '''十六进制转十进制'''
        def hex2dec(self,num):
            return self.bin2dec(self.hex2bin(num))
            
    if __name__=='__main__':
        nc=nsc()
        print(nc.hex2dec('fffee'))
  • 相关阅读:
    我在D2讲演的视频,已经可以下载了~
    走出海量数据及访问量压力困境
    博客作者应该学习的15个国外博客
    如何将jsp动态网页转换成静态页面
    新一代网络模式Web 2.0火爆发展
    数据库设计中的14个关键技巧
    如何进行RSS推广
    运用RUP 4+1视图方法进行软件架构设计
    02java关键词变量类型
    03java运算符函数
  • 原文地址:https://www.cnblogs.com/lkpp/p/7400058.html
Copyright © 2011-2022 走看看