可能重复:
C打印位
可以说我有一个uint16_t数字:
uint16_t myVar = 0x3A44;
Run Code Online (Sandbox Code Playgroud)
我想打印来自myVar的0x3A44的二进制值,我怎么能迭代访问并打印每一位?
把它当作一个阵列?
整数有效地是位数组.您可以循环遍历数字的值,将值向右移动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");
}
Run Code Online (Sandbox Code Playgroud)
结果是:
1111111100000000
Run Code Online (Sandbox Code Playgroud)