int main(int argc,char *argv[]) { int b1,b2,num,f; char s; b1=atoi(argv[1]); b2=atoi(argv[2]); num=atoi(argv[3]); f=b2dec(b1,num); s=b1dec(b2,f); printf("%c",s); }
void printNumDetail(const char *binResult) { char *sign = binResult[0] == '0' ? "+" : "-"; char exponent[9]; char mantisa[24]; memset(exponent, '\0', sizeof(exponent)); memset(mantisa, '\0', sizeof(mantisa)); strncpy(exponent, binResult + 1, 8); strncpy(mantisa, binResult + 9, 23); int expResult = b2dec(exponent); float mantisaResult = b2f(mantisa); printf( "sign: %s\nexponent: %s --> %d [%d - 127 = %d]\nmantisa: %s --> %f\n", sign, exponent, (expResult - 127), expResult, expResult - 127, mantisa, mantisaResult); float floatNum = pow2i(expResult - 127) * mantisaResult; floatNum = strcmp(sign, "+") == 0 ? floatNum : floatNum * (-1.0); printf("Float Format: %s 2^%d x %f = %d * %f = %f\n", sign, expResult - 127, mantisaResult, pow2i(expResult - 127), mantisaResult, floatNum); }