瑋倫 發問時間: 電腦與網際網路程式設計 · 1 0 年前

(C語言)二進制碼處理~

要如何處理一串二進制碼,然後用\"整數\"的方式讀取十六進制的碼出來呢??

例如:10101010-->0xAA

還有一個疑問是,可以把0xAA存成1個byte嗎??也就是用1個byte來表示. 謝!!

已更新項目:

我存二進制碼是用char~

如:char[8]={1,0,1,0,1,0,1,0}

2 個解答

評分
  • Dave
    Lv 7
    1 0 年前
    最佳解答

    void main()

    {

    unsigned char d[8] = { 1,0,1,0,1,0,1,0 };

    unsigned char num = d[0] << 7 | d[1] << 6 | d[2] << 5 | d[3] << 4 | d[4] << 3 | d[5] << 2 | d[6] <<1 | d[7];

    // 或是:

    // for( char i = 0; i<8; i++) num = num << 1 | d[i];

    printf("%d 0x%X", num, num);

    system("pause");

    }

  • Almond
    Lv 6
    1 0 年前

    我回答第二個問題:

    例如:

    0110 0001 = 0x61 = 十進制(97)

    那97所代表的字元是 'a',那字元又只佔1byte,所以只要以下列方式儲存即可:

    #include<stdio.h>

    void main()

    {

    char s;

    //s=97;

    //或是

    s=0x61;

    printf("%c\n",s);

    }

還有問題?馬上發問,尋求解答。