Character bitmap

#include <stdio.h>

//how_bitmap函式可將二維陣列的值輸出,輸出方式:當bit為1時輸出’*’,0輸出空白
//字元’  ’,每處理完2個byte輸出換行'\n'

void show_bitmap(char (*a)[30],int row);

char array[2][30] =
{
    {
        0x08,0x20,0x08,0x24,0xfe,0xfe,0x08,0x20,
        0x00,0x00,0x08,0x20,0x04,0x40,0x04,0x40,
        0x02,0x80,0x01,0x00,0x02,0x80,0x0c,0x70,
        0x30,0x0e,0xc0,0x04,0x00,0x00
    },
    {
        0x20,0x20,0x51,0xfc,0x88,0x88,0x00,0x50,
        0xfb,0xfe,0x22,0x22,0x22,0x22,0xf9,0xfc,
        0x21,0x24,0x21,0x24,0xa9,0x24,0x71,0x2c,
        0x20,0x20,0xf8,0x20,0x00,0x00
    }
};

void show_bitmap(char (*a)[30],int row)
{
    int i, j, k;

    for (i=0; i<row; i++)
    {
        for (j=0; j<30; j++)
        {
            for (k=7; k>=0; k--)
            {
                printf("%c", (a[i][j] & (1 << k)) ? '*' : ' ');
            }
            if ((j % 2) == 1)   // new line every two bytes
            {
                printf("\n");
            }
        }
    }
}

int main()
{
 show_bitmap(array, 2);

 return 0;
}



主要重點:
  • 二維陣列的宣告與傳遞方式
  • 位元運算判斷
  • 每 2 Bytes 執行一次換行的判斷
執行結果如下:

留言

這個網誌中的熱門文章

Linux 批次檔的寫法

【分享】如何顯示 Debug Message

[分享] Visual Studio 遠端偵錯