我想以二进制格式打印给定的整数。我在下面看到了这个例子并尝试了它,但是我没有得到正确的多字节整数输出。
#include<stdio.h>
#define BYTETOBINARYPATTERN "%d%d%d%d%d%d%d%d"
#define BYTETOBINARY(byte)\
(byte & 0x80 ? 1 : 0), \
(byte & 0x40 ? 1 : 0), \
(byte & 0x20 ? 1 : 0), \
(byte & 0x10 ? 1 : 0), \
(byte & 0x08 ? 1 : 0), \
(byte & 0x04 ? 1 : 0), \
(byte & 0x02 ? 1 : 0), \
(byte & 0x01 ? 1 : 0)
int main(){
// int a = (sizeof(int)*8);
int a = 10;
int m = 257; // takes two bytes
/* For a Single byte integer */
printf(BYTETOBINARYPATTERN"\n",BYTETOBINARY(a));
/* For a multibyte integer */
printf("M : "BYTETOBINARYPATTERN","BYTETOBINARYPATTERN"\n",BYTETOBINARY(m>>8),BYTETOBINARY(m));
return 0;
}
输出:
00001010
M : 00000001,00000001