我經常需要將狀態代碼轉換爲位表示形式,以便確定使用純文本或二進制通信協議的分析儀上哪些錯誤/狀態是活動的。python中二進制轉換的替代方法
我使用python來輪詢數據並解析它。有時候我真的很困惑,因爲我發現有很多方法可以解決問題。今天,我不得不將每個字符都是十六進制數字的字符串轉換爲二進制表示形式。也就是說,每個十六進制字符必須轉換爲4位,MSB從左邊開始。注意:我需要一個char轉換字符,並且前導零。
我設法建立了這些以準線單線方式完成技巧的函數。 。
def convertStatus(s, base=16):
n = int(math.log2(base))
b = "".join(["{{:0>{}b}}".format(n).format(int(x, base)) for x in s])
return b
例如,這種轉換下面輸入:
abcdef
到:
0000000100100011010001010110011110001001101010111100110111101111
這是我的目標。
現在,我想知道我可以用什麼優雅的解決方案來實現我的目標?我也想更好地理解解決方案中的優點和缺點。函數簽名可以更改,但通常它是輸入和輸出的字符串。讓我們變得富有想象力......
可能的[將十六進制轉換爲二進制]的副本(http://stackoverflow.com/questions/1425493/convert-hex-to-binary) –
'斌(INT(S,16))'? –
@Padraic,它是否通過字符轉換產生字符? – jlandercy