有没有一种简单的方法可以将字符转换为其二进制表示形式?
我正在尝试向另一个进程发送消息,一次发送一个位。 所以如果消息是“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/