将字符串转换为十六进制并在 python 中计算二进制结果
本文关键字:python 计算 二进制 结果 字符串 转换 十六进制 | 更新日期: 2023-09-27 18:35:16
我被我的代码困住了,尝试了这方面的任何东西以及谷歌展示的许多其他东西。
对于问题:
我尝试将一些代码截图从 C# 转换为 phyton,但在这个特殊点上我卡住了。
public static long decode(string data, int size, int offset = 0)
{
long value = 0;
for (int i = 0; i < size; ++i) {
value <<= 6;
value |= (long)data[offset + i] - 0x30;
}
return value;
}
字符串数据可能类似于 1Dh
.基于此,我将每个字符转换为十六进制等价物:0x31、0x44、0x68和减去0x30;所以我得到了0x1,0x14,0x38;在下一步中,我必须转换为二进制等效000001 010100、111000 并将其合并到000001010100111000. 由此我想得到整数含义,在本例中为 5432。
是否有可能在python中以智能和简单的方式做到这一点?
这实际上非常简单,翻译也非常简单。您可以继续使用位移位。唯一的变化是 for 循环的语法和使用 ord()
从字符中获取整数值。
def decode(data, size, offset=0):
value = 0
for ch in data[offset:size]:
value <<= 6
value |= ord(ch) - 0x30
return value
在解释器中运行它,我得到5432
:
>>> decode("1Dh", 3)
5432