这段代码有效,但我想知道是否有更好的方法来做到这一点。基本上我需要测试位,并根据位的状态将适当的字符写入字符串。存在空格是因为字符将以固定宽度的字体显示,我想防止它们四处移动。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);
}