c - 从 C 中的 C 样式字符串中获取位序列?
问题描述
我需要从 C 中固定长度的 C 样式字符串中获取位序列,char*
我该怎么做?我需要代表字符串的位序列,而不是特定的位。我需要在 C 中而不是在 C++ 中严格执行。
解决方案
您可以使用只有一个的简单位掩码,1
并一次扫描一个字节的字符串,从mask = 0x80
(binary 10000000
) 开始,一直到1
(binary 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
推荐阅读
- android - 领域java:Mmap()失败:内存大小不足
- php - jquery ajax post数组返回空
- tensorflow - Colab TPU 错误 InvalidArgumentError:无法分配设备进行操作
- kotlin - 相同键的主题未能加入 Kafka 流
- python - 在二维 python 数组中搜索一个值
- java - 如何从微调器中检索特定对象信息
- php - 如何根据关系表laravel中特殊列的总和orderBy()我得到提供者
- java - 未触发 MutableLiveData 的观察者
- r - 如何在 R 中创建链式均值?
- python - 如何正确管理活动小部件,而不是失去焦点或记住变量中的焦点