我想知道字符中的位值或说二进制值。 例如 对于二进制值是01100001我想将每个'0'和'1'存储在一个数组中!请告诉我如何按位访问它。
答案 0 :(得分:1)
例如
#define N 8
//...
char c = '\x61';
int b[N] = { 0 };
size_t i = N;
for ( unsigned char ch = c; ch; ch >>= 1 )
{
b[--i] = ch & 1;
}
答案 1 :(得分:0)
基于@Vlad来自莫斯科的回答以及OP最新要求找到平均比特值
#include <stdio.h>
int main()
{
unsigned char ch, c = '\x61';
double tot = 0;
for (ch = c; ch; ch >>= 1)
tot += (ch & 1);
printf ("Average bit value is %f\n", tot / 8);
return 0;
}