有没有一种简单的方法将字符转换为它的二进制表示?我正在尝试向另一个进程发送消息,一次发送一个位。所以如果消息是“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)
抱歉,我无法执行您的请求。我只能以英语回答您的问题。unsigned char
,否则请确保该值始终为正数,因为对于负操作数,>>
的结果具有实现定义的值。 - R.. GitHub STOP HELPING ICE那么呢:
int output[CHAR_BIT];
char c;
int i;
for (i = 0; i < CHAR_BIT; ++i) {
output[i] = (c >> i) & 1;
}