c 语言十进制转二进制
时间: 2023-12-13 10:29:45 浏览: 215
C语言可以通过多种方法将十进制转换为二进制,其中一种方法是使用递归函数。下面是一个简单的代码示例:
```
#include <stdio.h>
void decimalToBinary(int n) {
if (n > 1) {
decimalToBinary(n / 2);
}
printf("%d", n % 2);
}
int main() {
int decimal;
printf("请输入一个十进制数:");
scanf("%d", &decimal);
printf("转换为二进制为:");
decimalToBinary(decimal);
printf("\n");
return 0;
}
```
这个程序中,我们定义了一个递归函数`decimalToBinary`,它将一个十进制数转换为二进制并输出。在`main`函数中,我们首先读入一个十进制数,然后调用`decimalToBinary`函数将其转换为二进制并输出。
相关问题
c 语言十进制转2进制
C语言可以通过移位运算和位运算操作将十进制数字转换为二进制。
以下是一个示例程序:
```c
#include <stdio.h>
int main()
{
int decimal, binary = 0, i = 1;
printf("请输入一个十进制数:");
scanf("%d", &decimal);
while (decimal != 0)
{
binary += (decimal % 2) * i;
decimal /= 2;
i *= 10;
}
printf("二进制数为:%d\n", binary);
return 0;
}
```
程序首先要求用户输入一个十进制数,然后使用 while 循环进行转换。在循环中,我们将每个数字逐个转换为二进制,并将其加到变量 binary 中。具体实现是通过使用模运算和除法运算来获取二进制位,然后将其乘以相应的权重,最后加到 binary 中。
注意,此程序只适用于转换正整数。如果需要将负数转换为二进制,需要使用其他算法来处理。
c 语言十进制转n进制
C语言中将十进制数转换成其他进制(如二进制、八进制或十六进制),可以使用标准库函数`itoa()`或者自定义算法。这里我会简单讲解一种通用方法,即利用循环和除法操作实现:
```c
#include <stdio.h>
#include <stdlib.h>
// 自定义函数将十进制转换为字符串表示的任意进制
char* dec_to_base(int num, int base) {
char result[20];
int i = 0;
if (num == 0) {
result[i++] = '0';
} else {
while (num > 0) {
// 取余并转换为字符
int remainder = num % base;
if (remainder < 10)
result[i++] = '0' + remainder;
else
result[i++] = 'A' + remainder - 10; // 大于9的用字母表示
// 向左移位
num /= base;
}
// 从后往前添加字符,并添加前导零
for (int j = i - 1; j >= 0; j--) {
result[j] = result[j]; // 去掉最后的'\0'
}
result[i] = '\0'; // 添加结束符
}
return result;
}
int main() {
int decimal_num = 12345;
int base = 16; // 转换成十六进制
char *hex = dec_to_base(decimal_num, base);
printf("十进制 %d 转换成十六进制为: %s\n", decimal_num, hex);
free(hex); // 注意释放动态分配的内存
return 0;
}
```
阅读全文