判断一个整数是否是2的指数
判断一个整数是否是 2 的指数:
1 | #define IS_POWER_OF_2(n) ((n) && !(((n) - 1) & (n))) |
举例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | int main(void) { printf("check whether the number is power of 2:\n"); printf("0: %d\n", IS_POWER_OF_2(0)); printf("1: %d\n", IS_POWER_OF_2(1)); printf("2: %d\n", IS_POWER_OF_2(2)); printf("3: %d\n", IS_POWER_OF_2(3)); printf("4: %d\n", IS_POWER_OF_2(4)); printf("5: %d\n", IS_POWER_OF_2(5)); printf("6: %d\n", IS_POWER_OF_2(6)); printf("7: %d\n", IS_POWER_OF_2(7)); printf("8: %d\n", IS_POWER_OF_2(8)); printf("9: %d\n", IS_POWER_OF_2(9)); printf("-1: %d\n", IS_POWER_OF_2(-1)); printf("-2: %d\n", IS_POWER_OF_2(-2)); printf("-4: %d\n", IS_POWER_OF_2(-4)); return 0; } |
得到输出如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | check whether the number is power of 2: 0: 0 1: 1 2: 1 3: 0 4: 1 5: 0 6: 0 7: 0 8: 1 9: 0 -1: 0 -2: 0 -4: 0 |
code from DPDK
————————————————————
原创文章,转载请注明: 转载自孙希栋的博客
本文链接地址: 《判断一个整数是否是2的指数》