2013-04-30 314 views
0

我創建了一個大小爲100的列表,並使用以下代碼在python中使用8位數據填充數組,並且我想使用zlib.crc32()函數計算CRC值。使用Python計算CRC zlib.crc32函數

Init_RangenCrc8 = [] 
for i in range(0,100): 
    Init_RangenCrc8.append(random.randrange(0, 255, 1)) 

crc8_python = zlib.crc32(Init_RangenCrc8, 0xFFFF) 

當我返回並打印crc8_python時,我沒有收到任何值。

任何幫助,將不勝感激,謝謝。

+0

您的代碼看起來有點怪。 'Init_RangenCrc8 = []'應該在'for'循環之前,不是嗎?縮進看起來不正確。 – 2013-04-30 05:57:22

回答

7
>>> help(zlib.crc32) 
Help on built-in function crc32 in module zlib: 

crc32(...) 
    crc32(string[, start]) -- Compute a CRC-32 checksum of string. 

    An optional starting value can be specified. The returned checksum is 
    a signed integer. 
>>> zlib.crc32("".join(chr(random.randrange(0,255)) for _ in xrange(100))) 
333158331 

編輯:使用起始值0xFFFF代碼:

>>> text = "".join(chr(random.randrange(0,255)) for _ in xrange(100)) 

>>> zlib.crc32(text) 
-964269250 

>>> zlib.crc32(text, 0xFFFF) 
2057263175 
+1

你錯過了'0xFFFF'開始值。儘管如此+1。 – 2013-04-30 04:58:22

+0

你有什麼錯誤?另外,您是否想要列表中的每個元素都有一個crc32,或者列表中每個字符都包含一個單一的crc32? – sberry 2013-04-30 05:16:27

+2

第一個參數必須是一個字符串,因爲API是如何定義的。至於錯誤,你需要'導入zlib'和'import random'來使這個解決方案起作用,根據你的描述,這是正確的解決方案。 – sberry 2013-04-30 05:28:31