用c语言编写一个把10进制整数转换为16进制的简易代码
时间: 2023-05-24 21:01:01 浏览: 163
以下是用 C 语言编写的将 10 进制整数转换为 16 进制的简易代码:
```
#include <stdio.h>
#include <stdlib.h>
void dec_to_hex(int num){
char hex[100];
int i = 0;
while (num != 0) {
int temp = 0;
temp = num % 16;
if (temp < 10) {
hex[i] = temp + 48;
i++;
} else {
hex[i] = temp + 55;
i++;
}
num = num / 16;
}
for (int j = i - 1; j >= 0; j--)
printf("%c", hex[j]);
}
int main(){
int num;
printf("Enter number in decimal: ");
scanf("%d", &num);
printf("The number in hexadecimal is: ");
dec_to_hex(num);
printf("\n");
return 0;
}
```
这段代码可以将输入的十进制整数转换为十六进制,并输出转换后的结果。
相关问题
如何用C语言编写一个将十进制整数转换为二进制字符串的函数?
在C语言中,你可以通过循环和位运算来实现一个将十进制整数转换为二进制字符串的函数。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 定义一个函数,传入一个十进制整数并返回其二进制表示的字符串
char* decimalToBinary(int num) {
if (num == 0) return "0"; // 特殊情况处理零
char binary[32]; // 存储二进制结果的数组,假设输入不超过32位
int i = 0;
while (num > 0) {
binary[i++] = '0' + (num % 2); // 取余并转为字符(0 或 1)
num /= 2; // 整除2
}
// 将数组反转,因为原始顺序是从最低位到最高位
for (int j = 0; j < i / 2; j++) {
char temp = binary[j];
binary[j] = binary[i - 1] = temp;
}
binary[i] = '\0'; // 添加结束符
return binary;
}
int main() {
int input = 42;
char *binaryStr = decimalToBinary(input);
printf("Decimal %d in binary is: %s\n", input, binaryStr);
free(binaryStr); // 记得释放内存
return 0;
}
```
这个函数首先检查输入是否为零,然后通过`while`循环不断对输入取余并将结果存储在字符串中,同时逐渐向高位移动。最后反转字符串以获得正确的顺序,并添加结束符。
用c语言编写一个把10进制转为16进制的程序
```c
#include <stdio.h>
int main()
{
int decimal;
printf("请输入一个十进制数:");
scanf("%d", &decimal);
char hexadecimal[100];
int index = 0;
while(decimal != 0)
{
int remainder = decimal % 16;
if(remainder < 10)
{
hexadecimal[index] = remainder + '0';
}
else
{
hexadecimal[index] = remainder - 10 + 'A';
}
decimal /= 16;
index++;
}
printf("转换为十六进制为:");
for(int i = index - 1; i >= 0; i--)
{
printf("%c", hexadecimal[i]);
}
return 0;
}
```
运行结果:
```
请输入一个十进制数:256
转换为十六进制为:100
```
阅读全文