我正在尝试将64位符号字符串转换为32位。我的顾问说,64位符号字符串是一个十六进制字符串,我应该只在第8位后删除所有位。我决定用Python掩盖它:
that_string & 0xFFFFFFFF
但是如果不将字符串转换为int(),就不可能做到:
int('0x'+that_string, 16) & 0xFFFFFFFF
但是'that_string'变成了一个真正的整数,我无法将她转换回字符串。它不可能使chr(int('0x'+ that_string,16)& 0xFFFFFFFF),它导致问题:
ValueError: chr() arg not in range(256)
由于另一个错误:
,也无法进行decode()bash ~$: (that_string).decode('hex')
... File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/encodings/hex_codec.py", line 42, in hex_decode
output = binascii.a2b_hex(input)
TypeError: Odd-length string
我试图寻找另一个机会,但没有得到任何合适的解决方案。
而且,是的,我尝试了base64
- 库,但是我的顾问说,这是什么错误的想法以及那不是解决方案。
我很尴尬。请问你能帮帮我吗?可能是,还有其他方法存在,不是吗?
答案 0 :(得分:0)
用切片取最右边的8位数字:
document.cookie = "name=value; expires=some GMT date string";
其中str[-8:]
是一个包含输入数据十六进制表示的字符串。
如果str
的数字少于8位,那么这个表达式将返回它们,这就是你想要的。
例如:
str