在C语言中如何将10进制转换成16进制?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在C语言中如何将10进制转换成16进制?相关的知识,希望对你有一定的参考价值。

根据10进制转换为16进制的规则,编写C语言程序将10进制数转换为16进制数。


具体实现方法可参考如下程序:

#include<stdio.h>
void main()

    int i, x; // x表示欲转换的10进制数
    int data[10], index=0;  // data数组存放转换后的16进制数,index表示下标
    scanf("%d", &x);  // 接受欲转换的10进制数
    for(i=0; i<10; i++)  // 对数组data进行初始赋值操作
        data[i] = 0;
    printf("%d对应的16进制为:", x);
    // 反复相除取余,并将余数存放在data数组中
    while(x>0)
    
     data[index] = x%16;
     x = x/16;
     index++;
    
    // 逆序输出data数组中的元素,即为10进制数对应的16进制数
    for(i=index-1; i>=0; i--)
     printf("%d", data[i]);
    printf("\\n");

参考技术A 将一个10进制数除以16.连续除.每次的余数即为这个数的16进制数~例如:60,60/16商3余12,再用12/16商0余12.所以60用16进制表示就是:3C本回答被提问者采纳

C语言编程题将十进制M转换成二进制

1.要用C语言
2.我的思路是:M%2取余,将所有的余数放入一个数组,然后在用递减循环把余数输出,满足转换。
我有思路但是写不出来,哪位受累帮我实现一下。非常感谢……

#include <stdio.h>
void main()

int a[32]=0,i;
long num;
i=0;
printf("请输入一个十进制数:");
scanf("%ld",&num);
printf("%ld的二进制数为:",num);
while(num>=1)

a[i]=num%2;
num=num/2;
i++;

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

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

printf("\n");


这是我写的程序 要转八进制只需把这a[i]=num%2;num=num/2;两句改为a[i]=num%8;
num=num/8;
参考技术A 思路是对的,自己思考思考吧,用一个循环语句就可以了。 参考技术B void main()

long input;
for ( scanf ( "请输入正整数:\n%ld", &input ); input ;printf ( "%d", (input&0x80000000)!=0 ), input<<=1 );
参考技术C 用这个函数
void DisplayBits(unsigned value)

unsigned displayMask;
unsigned n;
int i;
n=sizeof(unsigned)*8;
displayMask=1<<(n-1);
for(i=0;i<n;i++)

putchar(value&displayMask?'1':'0');
displayMask=displayMask>>1;



就是通过位运算符

以上是关于在C语言中如何将10进制转换成16进制?的主要内容,如果未能解决你的问题,请参考以下文章

c语言中如何将16进制字符串转化成10进制整数?

C语言怎么将超大的16进制数转换成10进制,这个16进制数是个大数,比如0x123456789ABCDEF12345这种

任意十进制数转换成ASCII码C语言程序

16进制字符串如何转化16进制数值

C语言如何把11位16进制字符串转成16进制数?

c语言中如何将10进制的浮点数转化为16进制数