一直对python的进制转换比较模糊。。
求讲解一下python的进制转换。百度过 但是没找到字母怎么转
比如
hexstr='5555555595555A65556AA696AA6666666955'
s=''
for i in xrange(len(hexstr)/2):
ch=hexstr[i*2:i*2+2]
b=bin(int(ch,16))[2:]
b='0'*(8-len(b))+b
s+=b
print s
010101010101010101010101010101011001010101010101010110100110010101010101011010101010011010010110101010100110011001100110011001100110100101010101
网上找到软件输出
001101010011010100110101001101010011010100110101001101010011010100111001001101010011010100110101001101010100000100110110001101010011010100110101001101100100000101000001001101100011100100110110010000010100000100110110001101100011011000110110001101100011011000110110001110010011010100110101
看着都没错 但为什么有两种结果呢??
哈哈,这就是典型的想的太多,读书太少。
数字之间的进制转化就是高中数学里的内容,0xA>>10>>0b1010。问题里面的例子应该是16转二进制吧,题主想用python实现但是想复杂了
>>>hexstr='5555555595555A65556AA696AA6666666955'
>>>bin(int(hexstr,16))
'0b10101010101010101010101010101011001010101010101010110100110010101010101011010101010011010010110101010100110011001100110011001100110100101010101'
直接就可以了。
你的想法不知道我理解的对不对:对于一个16进制的字符串,两两一组转化为八位的二进制字符串再拼接。但是不知道题主考虑到如果输入的字符串不是偶数的情况了吗,hexstr=’5’是没有输出的,两两一组应该从低位开始,不应该从高位开始。
另外对于任意的字符转为计算机内存的二进制表示,思路就是枚举有限的字符用数字顺序来标识。ascii规定了字符和数字的对应关系(http://baike.baidu.com/view/1…,python提供了两个函数ord、chr查看其对应关系。
不明白什么叫字母转2进制,如果你指的是2进制存储的话直接申明个buff流进行写入操作。
如果是获取字符串的ascii码的话用encode转码
int(ch,16)