c语言把十进制转换为二进制的函数
时间: 2024-05-06 10:22:07 浏览: 183
以下是一个将十进制数转换为二进制数的C语言函数:
```c
#include <stdio.h>
int decimalToBinary(int decimal) {
int binary = 0, base = 1;
while (decimal > 0) {
binary += (decimal % 2) * base;
decimal /= 2;
base *= 10;
}
return binary;
}
int main() {
int decimal;
printf("Enter a decimal number: ");
scanf("%d", &decimal);
printf("The binary equivalent of %d is %d", decimal, decimalToBinary(decimal));
return 0;
}
```
这个函数使用了一个while循环,每次循环将十进制数的最后一位转换为二进制数并加入到二进制数中,然后将十进制数除以2,将基数乘以10,以便在下一次迭代中正确地添加下一位。最后,该函数返回二进制数。
相关问题
c语言递归十进制转换二进制
下面是使用递归实现十进制转换为二进制的C语言代码:
```c
#include <stdio.h>
void decimalToBinary(int decimalNum){
if(decimalNum == 0){
return;
}
decimalToBinary(decimalNum / 2);
printf("%d", decimalNum % 2);
}
int main(){
int decimalNum = 23;
printf("%d in binary is: ", decimalNum);
decimalToBinary(decimalNum);
printf("\n");
return 0;
}
```
在这个代码中,我们定义了一个函数 `decimalToBinary`,它接受一个参数:需要转换的十进制数 `decimalNum`。
在函数中,我们首先计算出 `decimalNum` 除以2的商和余数,然后递归调用 `decimalToBinary` 函数,并将商作为参数传入。递归调用会一直进行,直到 `decimalNum` 等于0为止。
当 `decimalToBinary` 函数递归返回时,我们输出余数。
在 `main` 函数中,我们定义了需要转换的十进制数,并调用 `decimalToBinary` 函数进行转换。最后,我们输出转换后的二进制数。
c语言将十进制转换为4位二进制
在C语言中,将十进制整数转换为四位二进制可以使用标准库函数`itoa()`或者自定义算法实现。这里我将展示一种简单的自定义算法:
```c
#include <stdio.h>
#include <string.h>
// 自定义函数将十进制转成四位二进制字符串
void dec_to_4bit_binary(int decimal, char binary[5]) {
int i = 0;
while (decimal > 0) {
// 取余数并左移一位(相当于乘以2)
binary[i++] = decimal % 2 + '0';
decimal /= 2;
}
// 添加前导零,如果不足四位
if (i < 4) {
for (int j = i; j < 4; ++j)
binary[j] = '0';
}
binary[i] = '\0'; // 结束字符串
}
int main() {
int decimal = 123;
char binary[5];
dec_to_4bit_binary(decimal, binary);
printf("十进制 %d 转换成4位二进制为: %s\n", decimal, binary);
return 0;
}
```
当你运行这个程序,会得到输出类似这样的结果:
```
十进制 123 转换成4位二进制为: 1111
```
阅读全文
相关推荐













