#include void show_binary(float *v) { unsigned int *pv = (unsigned int*)v; printf("10進数 %16.14f\n",*v); printf("16進数 0x%X\n",*pv); for(int i=31; i >= 0; --i){ if(i==31) printf("符号部 "); if(i==30) printf("\n指数部 "); if(i==22) printf("\n仮数部 "); putchar( '0'+ ( ( (*pv)&(1< 0 ) ); } printf("\n\n"); } int main() { float a = 48.375; show_binary(&a); a = 0.0; show_binary(&a); a = -0.0; show_binary(&a); a = 1.0/0.0; show_binary(&a); a = -1.0/0.0; show_binary(&a); a = 0.0/0.0; show_binary(&a); return 0; }