FLOOR(log2N) will always be equal to the exponent of the largest power of 2 less than or equal to N. So:
FLOOR(log2N) = 0 for N = 1
FLOOR(log2N) = 1 for 2 ≤ N ≤ 3
FLOOR(log2N) = 2 for 4 ≤ N ≤ 7
FLOOR(log2N) = 3 for 8 ≤ N ≤ 15
FLOOR(log2N) = 4 for 16 ≤ N ≤ 31
FLOOR(log2N) = 5 for 32 ≤ N ≤ 63
FLOOR(log2N) = 6 for 64 ≤ N ≤ 127
FLOOR(log2N) = 7 for 128 ≤ N ≤ 255
FLOOR(log2N) = 8 for 256 ≤ N ≤ 511
FLOOR(log2N) = 9 for 512 ≤ N ≤ 1023
FLOOR(log2N) = 10 for N = 1024
So the total we want is 2*1 + 4*2 + 8*3 + 16*4 + 32*5 + 64*6 + 128*7 + 256*8 + 512*9 + 10 = 8204.
No comments:
Post a Comment