繁体   English   中英

如何将char转换为二进制?

[英]how to convert a char to binary?

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

我试图将消息发送到另一个进程,一次一个位。 因此,如果消息是“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)

等等...

关于什么:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM