我可以用printf打印十六进制或八进制数字。是否有格式标记以二进制或任意基数打印
我在运行gcc
printf(";%d%x%o\n";,10,10,10)//印刷品;10 A 12 \n“;
打印(";%b\n";,10);//印刷品%“b\n”;
哈奇,但对我有用:
#定义字节到二进制模式“%c%c%c%c%c%c”
#定义字节到二进制(字节)\
(字节&;0x80?'1':'0')\
(字节&;0x40?'1':'0')\
(字节&;0x20?'1':'0')\
(字节&;0x10?'1':'0')\
(字节&;0x08?'1':'0')\
(字节&;0x04?'1':'0')\
(字节&;0x02?'1':'0')\
(字节&;0x01?'1':'0')
printf(“前导文本”字节到字节二进制模式,字节到字节二进制(BYTE));
对于多字节类型
printf(“m:“字节到二进制模式”“字节到二进制模式”\n”,
字节到二进制(m>;>;8),字节到二进制(m);
不幸的是,你需要所有额外的报价。这种方法具有宏的效率风险(不要将函数作为参数传递给BYTE\u to\u BINARY),但在这里的一些其他建议中避免了内存问题和strcat的多次调用