[英]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.