c语言十进制转十六进制

生活 2019-02-13 17:17:08 4015

本文收集整理关于c语言十进制转十六进制的相关议题,使用内容导航快速到达。

内容导航:

  • Q1:C语言编程,输入十进制数输出十六进制和八进制
  • Q2:c语言编程 把十进制转换为十六进制
  • Q3:C语言将一个十进制的整数转换成十六进制的字符串
  • Q4:c语言十六进制转十进制的算法怎么写
  • Q1:C语言编程,输入十进制数输出十六进制和八进制

    可以通过下面的公式解决

    #include

    const int maxn = 128;

    const int index8 = 8;

    const int index16 =16;

    int main()

    {int Array8[maxn];

    int Array16[maxn];

    int n, cot8 = 0;

    scanf("%d", &n);

    int m = n, cot16 = 0;

    while(n) {Array8[cot8++] = n % index8;

    n /= index8;}

    while(m) {Array16[cot16++] = m % index16;

    m /= index16;}

    int i;

    for(i = cot8 - 1; i >= 0; i--)

    printf("%d", Array8[i]);

    puts("");

    for(i = cot16 - 1; i >= 0; i--)

    扩展资料:

    十进制转十六进制的具体方法:

    对于整数部分,用被除数反复除以16,除第一次外,每次除以16均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。

    对于小数部分,采用连续乘以基数16,并依次取出的整数部分,直至结果的小数部分为0为止。故该法称“乘基取整法”。

    10进制数转换成十六进制数,这是一个连续除以16的过程:把要转换的数,除以16,得到商和余数,将商继续除以16,直到商为0。最后将所有余数倒序排列,得到数就是转换结果。

    Q2:c语言编程 把十进制转换为十六进制

    #include#includecharbuffer[33];//用于存放转换好的十六进制字符串,可根据需要定义长度char*inttohex(intaa){sprintf(buffer,"%x",aa);return(buffer);}intmain(){intnum;char*hex_str;printf("Enteranumber:");scanf("%d",&num);hex_str=inttohex(num);printf("Hexadecimalnumber:%sH\n",hex_str);return0;}

    扩展资料:

    16进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……

    所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。

    例:2AF5换算成10进制:

    用竖式计算:

    第0位: 5 * 16^0 = 5

    第1位: F * 16^1 = 240

    第2位: A * 16^2= 2560

    第3位: 2 * 16^3 = 8192

    -------------------------------------

    10997

    直接计算就是:

    5 * 16^0 + F * 16^1 + A * 16^2 + 2 * 16^3 = 10997

    16进制到二进制

    由于在二进制的表示方法中,每四位所表示的数的最大值对应16进制的15,即16进制每一位上最大值,所以,我们可以得出简便的转换方法,将16进制上每一位分别对应二进制上四位进行转换,即得所求

    Q3:C语言将一个十进制的整数转换成十六进制的字符串

    要转成字符串 其实不需要自己写多少程序 借用sprintf就可以了
    char s[20];
    int a;
    scanf("%d",&a);
    sprintf(s, "%x", a);
    这样 s中就是a的16进制字符串了。

    Q4:c语言十六进制转十进制的算法怎么写

    .2进制八进制和十六进制到10进制:
    从2进制八进制和十六进制数的最低位(最右端第n=1位),依次将乘以进制数的n-1次方相加
    例如:二进制数11010转十进制 (我用m^n表示m的n次方)
    0*2^0 + 1*2^1 + 0*2^2 + 1*2^3 + 1*2^4=26;
    八进制数20转十进制 0*8^0+2*8^1=16;
    所以算法也是类似,这代码是借鉴别人的。如下:
    #include
    #define N 10、
    int HtoD(char *s)
    {
    int i,d=0;
    char t;
    for(i=0; s[i]!=\0; i++)
    {
    d=d*16;
    t=s[i];
    if(t>=0 && t<=9)
    d=d+t-0;
    else if(t>=a && t<=f)
    {
    d=d+t-a+10;
    }
    else if(t>=A && t<=F)
    {
    d=d+t-A+10;
    }
    }
    return d;
    }

    相关文章
    c语言字符串输出一部分2019-01-22
    c语言怎么生成exe文件2019-01-27
    c语言定义多个结构体2019-02-17
    c语言输入数字变成字母2019-02-19
    设置c语言中字体颜色2019-02-20
    c语言逻辑运算符优先级2019-02-21
    C语言最大值最小值编程2019-02-22
    c语言打开文件怎么输入2019-02-25
    c语言 数组和指针区别2019-02-26
    c语言字符串长度怎么算2019-02-27