我需要从 C 中的 char*
固定长度 C 风格字符串中获取位序列,我该怎么做?我需要代表字符串的一系列位,而不是特定的位。我需要严格使用 C 而不是 C++ 来完成。
最佳答案
您可以使用只有一个 1
的简单位掩码,并从 mask = 0x80
开始(二进制 10000000
)并向下至 1
(二进制 00000001
)。
#include <stdio.h>
#define N 5
int main(void) {
char mystring[N] = "abcd";
unsigned i;
unsigned char mask;
for (i = 0; i < N; i++) {
unsigned char c = mystring[i];
unsigned char mask = 0x80;
do {
putchar(c & mask ? '1' : '0');
mask >>= 1;
} while (mask > 0);
putchar(' ');
}
putchar('\n');
return 0;
}
结果:
01100001 01100010 01100011 01100100 00000000
关于c - 从 C 语言中的 C 风格字符串获取位序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59994012/