Python任意字符串转16, 32, 64进制的方法
Python字符串转数字
importbinascii
s='test123456test'
str_16=binascii.b2a_hex(s.encode('utf-8'))#字符串转16进制
print(str_16)
defbaseN(num,b):
return((num==0)and"0")or\
(baseN(num//b,b).lstrip("0")+"0123456789abcdefghijklmnopqrstuvwxyz"[num%b])
num_10=int(str_16,16)#16进制转10进制
print(num_10)
str_32=baseN(num_10,32)#10进制转32进制
print(str_32)
num_10_2=int(str_32,32)#32进制转10进制
print(num_10_2)
num_16=hex(num_10)#10进制转16进制数
print(num_16)
ss=str_16.decode('hex')#16进制串转字符串
print(ss)
执行结果
7465737431323334353674657374 2360797289681380981751517517542260 1q6asrk64p36d1l6pq6asrk 2360797289681380981751517517542260 0x7465737431323334353674657374L test123456test
10进制转n进制
defbase10toN(num,n):
"""Changeatoabase-nnumber.
Uptobase-36issupportedwithoutspecialnotation."""
num_rep={10:'a',
11:'b',
12:'c',
13:'d',
14:'e',
15:'f',
16:'g',
17:'h',
18:'i',
19:'j',
20:'k',
21:'l',
22:'m',
23:'n',
24:'o',
25:'p',
26:'q',
27:'r',
28:'s',
29:'t',
30:'u',
31:'v',
32:'w',
33:'x',
34:'y',
35:'z'}
new_num_string=''
current=num
whilecurrent!=0:
remainder=current%n
if36>remainder>9:
remainder_string=num_rep[remainder]
elifremainder>=36:
remainder_string='('+str(remainder)+')'
else:
remainder_string=str(remainder)
new_num_string=remainder_string+new_num_string
current=current/n
returnnew_num_string
进阶版
defbaseN(num,b):
return((num==0)and"0")or\
(baseN(num//b,b).lstrip("0")+"0123456789abcdefghijklmnopqrstuvwxyz"[num%b])
64进制
defencode_b64(n):
table='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_'
result=[]
temp=n
if0==temp:
result.append('0')
else:
while0
Java字符串转数字
BigIntegerinteger=newBigInteger(hexString.toString(),16);
integer.toString(32);
importjava.math.BigInteger;
publicclassMain{
publicstaticvoidmain(String[]argv)throwsException{
BigIntegerbi=newBigInteger("1023");
bi=newBigInteger("1111111111",2);
Strings=bi.toString(2);
System.out.println(s);
bi=newBigInteger("1000",8);
System.out.println(s=bi.toString(8));
bi=newBigInteger("1023");
s=bi.toString();
System.out.println(s);
bi=newBigInteger("3ff",16);
s=bi.toString(16);
System.out.println(s);
}
}
以上这篇Python任意字符串转16,32,64进制的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。