用c语言写一个十进制转十六进制的代码
时间: 2023-11-17 18:07:49 浏览: 68
#include<stdio.h>
int main(){
int n, i=0;
char hex[100];
printf("请输入一个十进制数:");
scanf("%d",&n);
while(n!=0){
int temp = n%16;
if(temp<10){
hex[i] = temp + 48;
}
else{
hex[i] = temp + 55;
}
n = n/16;
i++;
}
printf("转换为十六进制为:");
for(int j=i-1;j>=0;j--){
printf("%c",hex[j]);
}
printf("\n");
return 0;
}
相关问题
用c语言写一个十进制转八进制和十六进制的代码
在C语言中,你可以使用`itoa()`函数将整数转换为字符串,然后分别处理八进制和十六进制的格式。这里是一个简单的示例,首先定义两个函数分别用于转换:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 十进制转八进制
void dec_to_oct(int num) {
char oct_str[10];
sprintf(oct_str, "%o", num);
printf("八进制: %s\n", oct_str);
}
// 十进制转十六进制
void dec_to_hex(int num) {
char hex_str[11]; // 包含前导零的10位,因为最多有16种可能字符
sprintf(hex_str, "%x", num);
printf("十六进制: %s\n", hex_str);
}
int main() {
int decimal_num = 12345; // 需要转换的十进制数字
dec_to_oct(decimal_num); // 转换并打印八进制
dec_to_hex(decimal_num); // 转换并打印十六进制
return 0;
}
```
当你运行这个程序,会得到像这样的输出:
```
八进制: 17351
十六进制: 30d9
```
C语言写一个十六进制转十进制代码
以下是一个将十六进制数转换为十进制数的C语言代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int main() {
char hex[100];
long long decimal = 0, base = 1;
int i = 0, value, length;
printf("Enter a hexadecimal number: ");
scanf("%s", hex);
length = strlen(hex);
for(i = length - 1; i >= 0; i--) {
if(hex[i] >= '0' && hex[i] <= '9') {
value = hex[i] - 48;
} else if(hex[i] >= 'a' && hex[i] <= 'f') {
value = hex[i] - 97 + 10;
} else if(hex[i] >= 'A' && hex[i] <= 'F') {
value = hex[i] - 65 + 10;
} else {
printf("Invalid hexadecimal number.\n");
exit(0);
}
decimal += value * base;
base *= 16;
}
printf("The decimal value of %s is %lld\n", hex, decimal);
return 0;
}
```
这个程序首先要求用户输入一个十六进制数,然后通过迭代每个十六进制数字并将其转换为十进制数来计算其十进制值。在这个过程中,程序检查输入的数是否是有效的十六进制数字,如果不是,则程序将退出并显示错误消息。
阅读全文