【问题标题】:Converting a String to hex and calculate binary result in python [closed]将字符串转换为十六进制并在python中计算二进制结果[关闭]
【发布时间】:2015-02-21 16:20:59
【问题描述】:

我的代码卡住了,尝试了这方面的任何东西以及 Google 展示的许多其他东西。

问题:

我尝试将一些代码片段从 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 中以一种智能且简单的方式做到这一点?

【问题讨论】:

  • Python 函数 ordhexbin 可能对您有用。

标签: c# python binary hex distance


【解决方案1】:

其实很简单,翻译也很直接。您可以继续使用您的位移。唯一的变化是 for-loop 的语法和使用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

【讨论】:

    猜你喜欢
    • 2017-05-26
    • 1970-01-01
    • 2013-03-20
    • 1970-01-01
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 2019-08-23
    相关资源
    最近更新 更多