#define ________ 0x0
#define _______X 0x1
#define ______X_ 0x2
#define ______XX 0x3
#define _____X__ 0x4
我已经创建了一些宏来在.h文件中存储几组字符作为整数值,如上所示,以便.h文件可以在其他文件中使用。
如果我将此.h文件包含在任何其他包含char数组的.c文件中,例如ch[] = {________,_______X}
,那么无论如何我都要打印实际的字符集,即" ____ "对于ch [0]和" _______ X"对于ch [1]。当我尝试打印时,它打印相应整数值的字符值,即0和1.请让我知道我可以用什么命令打印相同的。
答案 0 :(得分:1)
根据定义,角色是单个角色。因此,打印单个字符(如0x2)将永远不会打印多个字符,例如" _ _ _ _ _ _ X _"。你这样做的方法是创建一个char *数组(C中的字符串是char *)而不是char数组。如,
char **mystrings = {"________", "_______X", "______X_", etc.}
然后,您可以使用
printf("%s", mystrings[______X_]);
将打印
______X_
答案 1 :(得分:0)
您在"二进制代码中表示数字"符号(_代表0,X代表1)。 由于正整数以精确的二进制表示形式存储在存储器中,因此可以使用位运算符>> <<和&获得成功的比特。
最后,对于每一位,你可以做类似的事情:
putchar( bit? 'X': '_');
这句话询问你的位是1还是0.如果它等于1,那么一个字符' X'印刷,否则,' _'打印出来。
我给你留下了写(迭代)算法的细节,以找到给定数字的后续位。