我怎么能做十进制到十六进制。

时间:2015-10-28 14:32:18

标签: c

我想写一个小数,看看十六进制。 我写了一些代码,但它没有用。出了什么问题? 感谢。

#include<stdio.h>

int main()

{
    int l(int);
    int k(int);
    char cha;

    int x, y = 0, z = 18, a = 0, b = 0, c = 0, d = 0;

    scanf("%d %c", &x, &cha); //x a decimal number//
                              //I // 

    if (x>0 && x <= 65535) // kalsın //
    {

        if (cha == 'h' || cha == 'H')

        {
            y = x;


            for (z = 18; z >= 16; c++)
            {
                z = x / 16;
                x = x / 16;

            }
            z = k(z); /* this is a function for finding that what is in hex.*/
            d = c;
            for (a = 0; a != c; a++)
            {

                c = d;
                for (; c >= a; c--)
                {
                    b = y % 16;
                    y = y / 16;
                }
                b = k(b);    /* find what is */
            }
        }
    }
    return 0;
}




int k(int d)
{
    int e = d;
    if (e == 10) printf("A");
    else if (e == 11) printf("B");
    else if (e == 12) printf("C");
    else if (e == 13) printf("D");
    else if (e == 14) printf("E");
    else if (e == 15) printf("F");
    else if (e<10) printf("%d", e);

    return e;
}

这段代码有什么问题。写162小时 我看到了0000000 ...... 我只能使用循环(控制)和简单的函数

1 个答案:

答案 0 :(得分:1)

  

如何将小数点设为十六进制。?

待办事项

int a = 2000;
printf( "%X", a);

输出:

  

7D0

换句话说:2000 in hex。

解释:十进制和十六进制只是相同数字的符号(如二进制)。您想要打印哪种符号是您自己选择的。