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'))
  • 相关阅读:
    spring 中常用的配置项
    @Value 和 @ConfigurationProperties 获取值的比较
    js 数组循环删除元素或对象
    STS 控制台 中文乱码(maven 中文乱码)
    STS application.properties 中文乱码
    [翻译] USING GIT IN XCODE [2] 在XCODE中使用GIT[2]
    [翻译] USING GIT IN XCODE [1] 在XCODE中使用GIT[1]
    [翻译] GTAppMenuController
    [翻译] ATTutorialController
    [翻译] ZCSHoldProgress
  • 原文地址:https://www.cnblogs.com/lkpp/p/7400058.html
Copyright © 2011-2022 走看看