Possible Duplicate:
C printing bits
假设我有一个uint16的数字,比如:
uint16_t myVar = 0x3A44;
我想打印二进制值如果0x3A44来自myVar,我如何迭代访问和打印每个位?
把它当作一个位数组?
最佳答案
整数实际上是位数组。您只需循环遍历数字的值,将该值向右移动16次。
#include <stdio.h>
#include <stdint.h>
int main() {
uint16_t x = 0xFF00;
for (int i = 0; i < 16; i++) {
printf("%d", (x & 0x8000) >> 15);
x <<= 1;
}
printf("\n");
}
结果:
1111111100000000