-3
例如0x19是二進制的00011001。我試過使用printf%08x,但是這給了我00000019作爲輸出。我怎樣才能打印00011001呢?如何打印十六進制的二進制文件?
例如0x19是二進制的00011001。我試過使用printf%08x,但是這給了我00000019作爲輸出。我怎樣才能打印00011001呢?如何打印十六進制的二進制文件?
for (i=0; i<32; i++) putchar((x&(1<<(31-i)))?'1':'0');
如果itoa(非標準功能)可以使用的環境,可寫成如下。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
int main(void){
char bits[CHAR_BIT*sizeof(unsigned)+1];
itoa((int)0x19, bits, 2);
int len = strlen(bits);
if(len < 8)//%08
printf("%0*d%s\n", 8-len, 0, bits);
else
printf("%s\n", bits);
return 0;
}
寫下你自己的功能。 – haccks 2015-04-01 16:52:46
使用[itoa,utoa](http://manpages.ubuntu.com/manpages/utopic/en/man3/itoa.3avr.html)(非標準) 'char bits [32 + 1]; (「%s \ n」,itoa(0x19,bits,2));' – BLUEPIXY 2015-04-01 17:14:41
http://stackoverflow.com/questions/111928/is-there-a-printf-converter-to-print-in-二進制格式 – BLUEPIXY 2015-04-01 17:38:15