C语言代码。输入一个十进制数 将其转换为二进制和十六进制数
时间: 2024-11-12 11:46:24 浏览: 29
在C语言中,你可以使用内置的库函数`itoa()`(将整型转成字符串)以及`strtol()`(将字符串转换为整数)配合`bitset`或手动处理来进行十进制到二进制和十六进制的转换。这是一个简单的例子:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 将十进制整数转换为二进制字符串
void dec_to_bin(int num, char* buffer) {
int i = 0;
while (num > 0) {
buffer[i++] = num % 2 + '0'; // 添加 '0' 或 '1'
num /= 2;
}
buffer[i] = '\0'; // 结尾添加空字符
// 反转字符串,因为itoa会从低位向高位填充
for (i = 0; i < strlen(buffer) / 2; ++i) {
char temp = buffer[i];
buffer[i] = buffer[strlen(buffer) - 1 - i];
buffer[strlen(buffer) - 1 - i] = temp;
}
}
// 主函数
int main() {
int decimal_num = 42; // 示例十进制数
char binary[50]; // 用于存储二进制结果
dec_to_bin(decimal_num, binary);
printf("Decimal: %d\n", decimal_num);
printf("Binary: %s\n", binary); // 输出二进制
char hex[50];
sprintf(hex, "%x", decimal_num); // 使用sprintf将十进制转为十六进制
printf("Hexadecimal: %s\n", hex);
return 0;
}
```
这个代码首先定义了一个函数`dec_to_bin`将十进制数转换为二进制字符串,然后在`main`函数里调用该函数,并展示出二进制和十六进制的结果。
阅读全文