c - ANSI C 中字符的位操作

标签 c bit unsigned ansi-c

谁能告诉我一种在C中用二进制表示字符的好方法? 我需要将给定字符视为 1 和 0 的序列。 例如,如果我输入 'a' ,我希望将其视为 01100001 并最终返回 00010110 (带有反转半字节的字节)。 用起来好不好unigned char ?我应该使用 8 元素整数数组来存储字节吗?

int main(void){
   unsigned char c = 'a';

   return 0;
}

最佳答案

a byte with inverted nibbles

由于您似乎不关心 8 位以外的字符,因此您可以这样做 c = c<<4|c>>4 .

关于c - ANSI C 中字符的位操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60166632/

相关文章:

c++ - 为什么我可以将一个大于 127 的 int 传递给一个 char 数组,而不是直接传递?

c - Windows 在枚举时不发送 SET_CONFIGURATION

c - memcmp 但需要将 block 与固定值进行比较

C pthreads send()ing 和 recv()ing 在套接字上。分开工作但没有一起工作。不会退出

c - 平方根 union 和位移位

c - 无法理解部分代码

javascript - 如何使用 JavaScript 模拟 x86 无符号 32 位整数乘法?

c - C语言中二维数组和多维数组作为函数参数时

c - 在 C 中检查设置位的非常快速的方法

c++ - 在签名和未签名之间进行转换