Пример #1
0
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);
}
Пример #2
0
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);
}