写一个10进制转16进制c语言程序
时间: 2023-05-25 11:04:27 浏览: 49
以下是将一个10进制数转换为16进制数的C程序:
```
#include <stdio.h>
int main()
{
int num, rem, i = 0;
char hex[20];
printf("Enter a decimal number: ");
scanf("%d", &num);
while (num > 0)
{
rem = num % 16;
if (rem < 10)
hex[i] = rem + 48;
else
hex[i] = rem + 55;
i++;
num = num / 16;
}
printf("Hexadecimal equivalent: ");
for (int j = i - 1; j >= 0; j--)
printf("%c", hex[j]);
return 0;
}
```
在该程序中,我们首先接收一个十进制数并将其存储在变量`num`中。然后,我们使用一个while循环将其转换为十六进制数。在while循环中,我们计算num的余数,并将其用于查找相应的十六进制值。如果余数小于10,则我们添加48,如果余数为10或更大,则我们添加55,以获取相应的十六进制位。然后,我们将其存储在一个字符数组中,并逐个打印字符数组,以显示十六进制等效项。
相关问题
写一个十进制转十六进制的C语言代码
以下是将十进制数转换为十六进制的C语言代码:
```c
#include <stdio.h>
int main()
{
int decimal, quotient, remainder;
int i = 1, j, temp;
char hexadecimal[100];
printf("Enter a decimal number: ");
scanf("%d", &decimal);
quotient = decimal;
while (quotient != 0)
{
temp = quotient % 16;
if (temp < 10)
temp = temp + 48;
else
temp = temp + 55;
hexadecimal[i++] = temp;
quotient = quotient / 16;
}
printf("Hexadecimal equivalent is: ");
for (j = i - 1; j > 0; j--)
printf("%c", hexadecimal[j]);
return 0;
}
```
这个程序的基本思路是:
1. 首先,从用户接收一个十进制数。
2. 然后,将该数字除以16,得到商和余数。
3. 如果余数小于10,则将其转换为字符并将其添加到一个数组中。
4. 如果余数大于等于10,则将其转换为相应的字母(A、B、C、D、E或F)并将其添加到数组中。
5. 重复第2步,直到商为0。
6. 最后,从数组的末尾开始,将所有字符打印出来,以获得十六进制等效项。
用C语言写一个16进制转浮点型的程序
以下是一个简单的C语言程序,可以将16进制数转换为浮点数:
```c
#include <stdio.h>
int main() {
unsigned int hex;
float f;
printf("请输入一个16进制数:");
scanf("%x", &hex);
f = *(float*)&hex;
printf("转换后的浮点数为:%f\n", f);
return 0;
}
```
运行程序后,输入一个16进制数,程序将转换为对应的浮点数并输出。
程序的原理是将输入的16进制数当做一个unsigned int类型的变量,然后将其地址强制转换为float类型的指针,最终获取到浮点数的值。这个方法需要考虑到计算机的端序问题,即大端序和小端序,通常情况下可以使用计算机的默认端序即可。