0
我看到這段代碼here,我想知道下面的代碼是如何工作的。我理解邏輯,但只是想知道如何使用好位邏輯的實現。它是如何得到相同的前綴和後綴?
我修改了代碼,使其爲4位。我想知道如何檢測普通前綴,即在下面的情況5中?第12行和第13行的數學推理是什麼?
1 import random
2 #suppose the range of number is 8 bits
3 #and we are working with 4bits prefix
4 #and 4bits suffix
5 data = []
6 bits = 4
7 for i in range(100000):
8 data.append(random.randint(0, 100))
9 suffix = 5
10 for i in data:
11 i = int(i)
12 s = i^(suffix<<bits)
13 if s < (1 << bits):
14 print("s is ", s, "prefix of", i, "is", s, "and suffix is ", suffix)
只是想知道你是如何得到這麼快?我花了很多時間弄清楚了。一旦你回答了這個問題,我會標記它是正確的。哦,現在我明白我正在使用^作爲不是異或者的力量。 –
@nomanpouigt是的,你鏈接的頁面有點令人困惑,因爲解釋使用^來表示權力,但代碼使用它來表示異或。這是一個常見的混淆之處,因爲它在不同的語言中有不同的用法。 – m69