<分区>
Possible Duplicate:
C printing bits
假设我有一个类似 uint16_t 的数字:
uint16_t myVar = 0x3A44;
我想从 myVar 打印二进制值 if 0x3A44,我如何迭代访问和打印每一位?
把它当作一个位数组?
<分区>
Possible Duplicate:
C printing bits
假设我有一个类似 uint16_t 的数字:
uint16_t myVar = 0x3A44;
我想从 myVar 打印二进制值 if 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");
}
结果:
1111111100000000
关于C:访问 uint16_t 数字中的各个位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9950067/