いろいろ、注意
- UNOでの予定は、未定
- bit8_putは、マクロ化する為に破壊読み出し(入力の内容が破壊される
- font270は、入力と出力の領域は、別領域にする事
結果
プログラム
オンラインコンパイラ paiza
#include <iostream>
using namespace std;
#define b_put(aa) for(int ii=8;ii!=0;ii--){if(aa & 0x80){printf("#");}else{printf(" ");}aa=aa<<1;}
#define bit8_put(bb) for(int jj=0;jj<8;jj++){b_put(bb[jj]);printf("\n");}
//void font_data_out(unsigned char *font){
// for(int i=0;i<8;i++){
// printf("[%02x]\n",font[i]);
// }//for
// printf("\n");
//}//font_data_out
void font270(unsigned char *fontO, unsigned char *fontI){
for(int i=0;i<8;i++){
fontO[i] = 0;
}//for i
for(int i=0;i<8;i++){
//処理
// 12345678
int m = 0b00000001;
int a = fontI[i];
fontO[7] = fontO[7] << 1;
fontO[6] = fontO[6] << 1;
fontO[5] = fontO[5] << 1;
fontO[4] = fontO[4] << 1;
fontO[3] = fontO[3] << 1;
fontO[2] = fontO[2] << 1;
fontO[1] = fontO[1] << 1;
fontO[0] = fontO[0] << 1;
fontO[0] = fontO[0]|(a & m); a = a >> 1;
fontO[1] = fontO[1]|(a & m); a = a >> 1;
fontO[2] = fontO[2]|(a & m); a = a >> 1;
fontO[3] = fontO[3]|(a & m); a = a >> 1;
fontO[4] = fontO[4]|(a & m); a = a >> 1;
fontO[5] = fontO[5]|(a & m); a = a >> 1;
fontO[6] = fontO[6]|(a & m); a = a >> 1;
fontO[7] = fontO[7]|(a & m);
}//for i
}//font270
int main(void){
// Your code here!
unsigned char fontI[] = {
0b00100000,
0b01111100,
0b00100000,
0b01111100,
0b10101010,
0b10110010,
0b01100100,
0b00000000
};
//bit8_put(fontI);printf("\n");
unsigned char font[8];
font270(font,fontI);
bit8_put(font);
}
##
# # #
# ##
# # #
#######
# # #
##