簡體   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