[英]How to convert unsigned char to binary representation
我正在嘗試將無符號字符轉換為其十六進制 ASCII 值,但以二進制形式。
例如:
無符號字符 C 到 0100 0011 (43)
我可以從十六進制到二進制問題是從 char 到它的十六進制值。
for (n = 0; n < 8; n++){
binary[n] = (letter >> n) & 1;}
我不斷得到錯誤的值,因為字母是作為它自己的 ASCII 值而不是十六進制 ASCII 值的二進制版本進入的
我認為您可以一點一點地挑選這些位,與您想要的相比,您只需按相反的順序獲取它們。
這有效:
#include <stdio.h>
int main() {
unsigned char letter = 'C';
int binary[8];
for(int n = 0; n < 8; n++)
binary[7-n] = (letter >> n) & 1;
/* print result */
for(int n = 0; n < 8; n++)
printf("%d", binary[n]);
printf("\n");
return 0;
}
運行它會給出你想要的 01000011。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.