在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取余,将所有的余数放入一个数组,然后在用递减循环把余数输出,满足转换。
我有思路但是写不出来,哪位受累帮我实现一下。非常感谢……
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进制,这个16进制数是个大数,比如0x123456789ABCDEF12345这种