在解析JpegLib的过程中,发现其中有一个小技巧,用来判断一个数是是否是2的n次方。
内容如下:
一个数X > 0,如果 X 与 X - 1没有一个bit的相同(X & (X - 1) = 0),则X是2的n次方。
例如:
1、X = 8(2的3次方), X = 1000,X - 1 = 0111 => (X & (X - 1) = 0。
2、X = 6(不是2的n次方), X = 0110,X - 1 = 0101 => (X & (X - 1) != 0。
在解析JpegLib的过程中,发现其中有一个小技巧,用来判断一个数是是否是2的n次方。
内容如下:
一个数X > 0,如果 X 与 X - 1没有一个bit的相同(X & (X - 1) = 0),则X是2的n次方。
例如:
1、X = 8(2的3次方), X = 1000,X - 1 = 0111 => (X & (X - 1) = 0。
2、X = 6(不是2的n次方), X = 0110,X - 1 = 0101 => (X & (X - 1) != 0。