c语言不用数组怎样十进制转二进制
时间: 2023-11-24 19:51:03 浏览: 98
以下是一种不使用数组的C语言实现十进制转二进制的方法:
```c
#include <stdio.h>
void decimalToBinary(int n) {
int binary = 0, i = 1;
while (n > 0) {
binary += (n % 2) * i;
n /= 2;
i *= 10;
}
printf("输出:%d\n", binary);
}
int main() {
int decimal;
printf("输入:");
scanf("%d", &decimal);
decimalToBinary(decimal);
return 0;
}
```
相关问题
c语言不用数组怎么将10进制转换二进制
可以使用位运算符来将十进制数转化为二进制数,具体步骤如下:
1. 定义一个变量bit,初始值为1。
2. 将十进制数不断右移1位,直到为0为止。每次右移1位,相当于将十进制数除以2,同时将二进制数左移1位。
3. 每次右移1位的结果与1进行与运算,得到的结果就是对应二进制位的值,将其保存到一个整数变量中。
4. bit左移1位,相当于将二进制数左移1位。
例如,将十进制数19转化为二进制数:
```c
int decimal = 19;
int binary = 0;
int bit = 1;
while (decimal != 0) {
int digit = decimal & 1;
binary += digit * bit;
bit <<= 1;
decimal >>= 1;
}
```
在上面的代码中,digit变量保存了每次移位后对应的二进制位的值,binary变量保存了转换后的二进制数。最后得到的binary值就是19的二进制表示10011。
C语言如何用while不用数组实现十进制转换为二进制
在C语言中,你可以使用while循环结合位操作来将十进制数转换为二进制。这里是一个简单的示例:
```c
#include <stdio.h>
void decimal_to_binary(int num) {
int binary[32]; // 可能需要调整大小,取决于最大输入值
int i = 0;
while (num > 0) {
binary[i] = num % 2; // 取余数得到当前位
num /= 2; // 整除移位
i++;
}
printf("Binary representation: ");
for (int j = i - 1; j >= 0; j--) {
printf("%d", binary[j]);
}
}
int main() {
int decimal;
printf("Enter a decimal number: ");
scanf("%d", &decimal);
decimal_to_binary(decimal);
return 0;
}
```
在这个程序中,`decimal_to_binary`函数首先创建一个整型数组来存储二进制每一位。然后通过while循环不断取十进制数的余数(即当前位),并将余数存入数组,直到十进制数变成0。最后,从数组的末尾开始反向打印出二进制表示。
阅读全文