C语言 十进制转十六进制字符
时间: 2023-11-16 17:05:59 浏览: 93
答案是使用 sprintf() 函数,例如:
int decimal_num = 255;
char hex_char[3];
sprintf(hex_char, "%02X", decimal_num);
这里的 %02X 表示要将 decimal_num 转换成两位的十六进制字符,前面不足补0。最后,hex_char 中就会存储 "FF"。
相关问题
c语言十进制转十六进制字符串
可以使用以下代码实现c语言十进制转十六进制字符串:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void dec2hex(int n, char *str) {
int i = 0;
while (n > 0) {
int mod = n % 16;
if (mod < 10) {
str[i++] = mod + '0';
} else {
str[i++] = mod - 10 + 'A';
}
n /= 16;
}
str[i] = '\0';
int len = strlen(str);
for (int j = 0; j < len / 2; j++) {
char temp = str[j];
str[j] = str[len - j - 1]; str[len - j - 1] = temp;
}
}
int main() {
int n = 255;
char str[100];
dec2hex(n, str);
printf("十进制数 %d 转化为十六进制为: %s\n", n, str);
return 0;
}
```
C语言 十进制转十六进制
C语言中,可以通过以下步骤将十进制数转换为十六进制数:
1. 将十进制数不断除以16,直到商为0为止,将每次的余数保存下来。
2. 将保存的余数倒序排列,即为该十进制数对应的十六进制数。
下面是一个示例代码:
```
#include <stdio.h>
void decToHex(int num) {
int rem, i = 0;
char hex[50];
while (num != 0) {
rem = num % 16;
if (rem < 10) {
hex[i] = rem + 48;
} else {
hex[i] = rem + 55;
}
i++;
num /= 16;
}
printf("Hexadecimal number: ");
for (int j = i - 1; j >= 0; j--) {
printf("%c", hex[j]);
}
}
int main() {
int decimal;
printf("Enter a decimal number: ");
scanf("%d", &decimal);
decToHex(decimal);
return 0;
}
```
该代码中,我们定义了一个名为`decToHex`的函数,该函数接受一个十进制数作为参数,并将其转换为十六进制数。在函数中,我们使用了一个字符数组`hex`来保存每次的余数,然后将其倒序输出即可得到最终的十六进制数。在`main`函数中,我们通过`scanf`函数获取用户输入的十进制数,并调用`decToHex`函数将其转换为十六进制数并输出。
阅读全文