如何将char转换为二进制?

是否有一种简单的方法将字符转换为二进制表示?

我试图将消息发送到另一个进程,一次一个位。 因此,如果消息是“Hello”,我需要先将“H”转换为二进制,然后按顺序发送这些位。

存储在arrays中将是优选的。

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

我想我应该提到这是为了让学校的任务能够学习信号……这只是一种了解它们的有趣方式。 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) 

等等…

关于什么:

 int output[CHAR_BIT]; char c; int i; for (i = 0; i < CHAR_BIT; ++i) { output[i] = (c >> i) & 1; } 

c的位写入output ,最低位先写入。