簡體   English   中英

位於A和B之間(包括兩個端點)的所有自然數的AND

[英]AND of all natural numbers lying between A and B both inclusive

我們需要計算介於A和B之間的所有自然數(包括兩者在內)的按位與。我在一個網站上遇到了這個問題,這是他們使用的方法,但我不明白該方法。誰能解釋這個用一個例子更清楚?

為了解決這個問題,我們只需要關注每個功率2的出現,結果證明是周期性的。 現在,對於每個2 ^ i(周期的長度將是2 ^(i + 1),其中2個^ i零后跟相同數量的1),我們只需要計算給定間隔中1是否保持不變,就可以完成通過簡單的算術。 如果是這樣,答案中將出現2的冪,否則就沒有。

讓我們用3位進行計數(無符號)以首先可視化一些數字:

000 = 0
001 = 1
010 = 2
011 = 3
100 = 4
101 = 5
110 = 6
111 = 7

如果查看這些列,可以看到最低位以1的周期交替,下一位以2的周期,然后是4,而第n個最低位以2 ^(n-1的周期)交替。 )。

一旦位為0,就始終為0(因為0等於0)。

你也可以說該n個位僅1如果n個的位AB1d < 2^(n-1) 換句話說,只有在開始和結束時為1,並且由於循環周期太大而沒有時間在其間更改為0的時間,bit才會為1。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM