說明是:Python中,如何解碼二進制編碼的十進制(BCD)的二進制字段的
主叫號碼,表示對壓縮BCD碼,和剩餘位填充「0xF」
我試圖打印結構格式'16c'
,我得到:('3', '\x00', '\x02', '\x05', '\x15', '\x13', 'G', 'O', '\xff', '\xff', '\xff', '\xff', '\xff', '\xff', '\xff', '\xff')
,如果我使用'16b'
我得到(51, 0, 2, 5, 21, 19, 71, 79, -1, -1, -1, -1, -1, -1, -1, -1)
。這是不正確的,我應該得到電話號碼,上面的數字是無效的。
print struct.unpack_from('>16b', str(data.read()),offset=46)
上面是代碼,沒有工作,我得到無效的數字。我應該用什麼格式解壓那個16字節的字段以及如何轉換BCD碼?
非常感謝。 – Whit3H0rse 2012-07-26 12:30:03
+1非常優雅和pythonic! – Kos 2012-07-26 12:33:13