是否有將字符轉換爲二進制表示的簡單方法?如何將char轉換爲二進制文件?
我試圖發送消息到另一個進程,一次一個位。 所以如果消息是「你好」,我需要先把'H'變成二進制,然後按順序發送這些比特。
存儲在數組中將是首選。
感謝您的任何反饋,僞代碼或實際代碼將是最有幫助的。
我想我應該提到這是一個學校的任務,瞭解信號......這只是一個有趣的方式來了解它們。 SIGUSR1被用作0,SIGUSR2被用作1,並且要點是從一個進程向另一個進程發送消息,假裝環境正在鎖定其他通信方法。
是否有將字符轉換爲二進制表示的簡單方法?如何將char轉換爲二進制文件?
我試圖發送消息到另一個進程,一次一個位。 所以如果消息是「你好」,我需要先把'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
,至少顯著位。
你能給的你所期望的一個例子來實際發送? – 2011-02-03 22:42:15
所以你想一次只發送一個二進制數字?爲什麼? – 2011-02-03 22:42:55
其實它的信號......我需要的只是一個角色的二進制表示。所以也許我提供了一個int數組,並通過一些函數,它變成了二進制。那麼我可以在數組中循環併發送每一位。這是一種開箱即用的練習。 – Blackbinary 2011-02-03 22:43:47