十进制转16进制C语言代码
时间: 2023-08-06 14:03:07 浏览: 182
可以使用C语言中的sprintf函数将一个十进制数转换为16进制数的字符串表示。代码如下:
```c
#include <stdio.h>
int main()
{
int decimal = 233;
char hex[10];
sprintf(hex, "%X", decimal);
printf("Decimal %d in hex is %s\n", decimal, hex);
return 0;
}
```
输出结果为:
```
Decimal 233 in hex is E9
```
其中,sprintf函数的第一个参数hex表示将转换结果存放在该字符数组中,第二个参数"%X"表示将十进制数转换为大写的16进制数字符串。如果想将结果转换为小写的16进制数字符串,可以使用"%x"作为第二个参数。
相关问题
两位十进制转16进制C语言代码
以下是两个十进制转16进制的C语言代码:
1. 使用 sprintf 函数将十进制数转换为16进制字符串:
```c
#include <stdio.h>
int main() {
int decimal = 255;
char hex[10];
sprintf(hex, "%X", decimal);
printf("The decimal %d in hexadecimal is %s\n", decimal, hex);
return 0;
}
```
2. 使用位运算将十进制数转换为16进制数:
```c
#include <stdio.h>
int main() {
int decimal = 255;
int hex = 0;
int i = 0;
while (decimal != 0) {
hex += (decimal % 16) << (i * 4);
decimal /= 16;
i++;
}
printf("The decimal %d in hexadecimal is %X\n", decimal, hex);
return 0;
}
```
其中,第一个代码示例使用 sprintf 函数将十进制数转换为16进制字符串,然后将字符串打印出来。第二个代码示例使用位运算将十进制数转换为16进制数,然后将16进制数打印出来。
带小数十进制转16进制C语言代码
带小数的十进制转16进制可以先将它转换为整数部分和小数部分,然后将整数部分转换为16进制,再将小数部分转换为16进制。这里给出一个将带小数的十进制转换为16进制的C语言代码示例:
```c
#include <stdio.h>
void decimal2hex(double decimal, char *hex)
{
int integer = (int) decimal;
double fraction = decimal - integer;
char integer_hex[10], fraction_hex[10];
// Convert integer part to hex
sprintf(integer_hex, "%X", integer);
// Convert fraction part to hex
int i = 0;
while (fraction > 0 && i < 4) {
fraction *= 16;
int digit = (int) fraction;
fraction -= digit;
fraction_hex[i] = (digit < 10) ? digit + '0' : digit + 'A' - 10;
i++;
}
fraction_hex[i] = '\0';
// Combine integer and fraction hex
if (fraction > 0) {
sprintf(hex, "%s.%s", integer_hex, fraction_hex);
} else {
sprintf(hex, "%s", integer_hex);
}
}
int main()
{
double decimal = 233.75;
char hex[20];
decimal2hex(decimal, hex);
printf("Decimal %.2f in hex is %s\n", decimal, hex);
return 0;
}
```
输出结果为:
```
Decimal 233.75 in hex is E9.C0
```
其中,decimal2hex函数接受一个双精度浮点数和一个字符数组指针作为参数,将转换结果存放在该字符数组中。函数先将浮点数分解为整数部分和小数部分,然后分别将它们转换为16进制数。小数部分最多转换4位,因为单精度浮点数的小数部分只有23位,所以最多转换4位可以保证精度。最后将整数和小数部分合并成一个字符串返回。
阅读全文