簡體   English   中英

如何將無符號字符轉換為二進制表示

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM