このコードは機能しますが、もっと良い方法があるのだろうかと思います。基本的に私はビットをテストし、ビットの状態に応じて適切な文字を文字列に書き出す必要があります。文字は固定幅のフォントで表示されるため、スペースが存在し、移動しないようにしたいと思います。 CまたはC++は問題ありません。ビットをテストして文字列を作成する - より良いアプローチがありますか?
const char* Letters[10] = {"A", "B", "Sl", "St", "R", "L", "U", "D", "RS", "LS"};
const char* Ext[2] = {"X", "Y"};
const char* Spaces[10] = {" ", " ", " ", " ", " ", " ", " ", " ", " ", " "};
char str[60];
char FinalString[60];
void MakeBitString(u16 data, u16 dataExt) {
int x;
strcpy(str, "");
for (x = 0; x < 2; x++) {
//X and Y
if(dataExt & (1 << x)) {
strcat(str, Spaces[x]);
}
else
strcat(str, Ext[x]);
}
for (x = 0; x < 10; x++) {
//the rest
if(data & (1 << x)) {
strcat(str, Spaces[x]);
}
else
strcat(str, Letters[x]);
}
strcpy(FinalString, str);
}
これは、幅がビットが設定されているかどうかと同じであることを確認しています。 – MSN