c - 如何将字符转换为二进制?

标签 c binary char

有没有一种简单的方法可以将字符转换为其二进制表示形式?

我正在尝试向另一个进程发送消息,一次发送一个位。 所以如果消息是“Hello”,我需要先将'H'转换成二进制,然后按顺序发送比特。

最好存储在数组中。

感谢任何反馈,伪代码或实际代码将是最有帮助的。

我想我应该提到这是一项学习信号的学校作业……这只是了解信号的一种有趣方式。 SIGUSR1 用作 0,SIGUSR2 用作 1,重点是从一个进程向另一个进程发送消息,假装环境正在锁定其他通信方法。

最佳答案

您只需循环每个位并进行移位并执行逻辑 AND 即可获得该位。

for (int i = 0; i < 8; ++i) {
    send((mychar >> i) & 1);
}

例如:

unsigned char mychar = 0xA5; // 10100101

(mychar >> 0)    10100101
& 1            & 00000001
=============    00000001 (bit 1)

(mychar >> 1)    01010010
& 1            & 00000001
=============    00000000 (bit 0)

等等……

关于c - 如何将字符转换为二进制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4892579/

相关文章:

c - 似乎是 'infinite recursive' 的递归函数如何工作?

c - 十进制素数转二进制

java - 将一位插入字节数组

c - 发送到函数的简单字符指针不起作用

Java中的字符范围

c++ - 通过 "int"、 "least"和 "fast"非固定宽度类型 C/C++ 允许编译器优化

C 程序因大型数组而崩溃

使用 *param 和 &param 调用 C 函数

cocoa - 用 cocoa 保存二进制数据

c - 如何将句子扫描到字符串数组中?