python 进制转换

python 进制转换

十进制转其他进制

#十进制数
int_str = 100
#2进制 返回值以’ob‘开头
bin_str = bin(int_str )
#8进制 数字较大时,返回值以’L‘结尾
oct_str = oct(int_str )
#16进制 数字较大时,返回值‘0x’开头,以‘L’结尾
hex_str = hex(int_str )
#任意进制
def transformFormat(int_str ,formatN):  
	#返回每个位数上的数值的集合
    b=[]
    while True:
        s=int_str //formatN  # 商
        y=int_str %formatN  # 余数
        b=b+[y]
        if s==0:
            break
        n=s
    b.reverse()
    return b 

其他进制转10进制:

#2进制
int_str = int(bin_str,2#8进制
int_str = int(oct_str,2#16进制
int_str = int(hex_str,2#任意进制
def formatTransform(n,formatN):  
    result = 0;
    n = str(n)
    for i in range(0,len(n)): 
        result += int(n[i])*(formatN**(len(n)-i-1))
    return result;

字符串转2进制/10进制/16进制

#2进制编码
def encode(s):
    return ' '.join([bin(ord(c)).replace('0b', '') for c in s])
#2进制解码
def decode(s):
	# s=‘10000111 00111010’
    return ''.join([chr(i) for i in [int(b, 2) for b in s.split(' ')]])
#16进制
hex_str= s.encode('hex')

#转16进制 再转成十进制
import binascii
string = '前方三点十五分方向,发现敌方目标潜艇,五分钟内给我打他个稀巴烂,回来后给你请功,赏你一瓶二锅头'
string_int = int(string.encode('hex'),16)
print string_int
int_string = hex(string_int)[2:-1].decode('hex')
print int_string

    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值