python0b是什么进制_python进制转换问题?

一直对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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值