用c语言移位实现十进制转二进制
时间: 2023-09-21 17:02:50 浏览: 145
以下是用C语言移位实现十进制转二进制的代码:
```c
#include <stdio.h>
int main() {
int decimal, binary = 0, base = 1;
printf("Enter a decimal number: ");
scanf("%d", &decimal);
while (decimal > 0) {
binary += (decimal % 2) * base;
decimal /= 2;
base *= 10;
}
printf("Binary equivalent: %d", binary);
return 0;
}
```
解释:
1. 首先,我们声明了三个整型变量:`decimal`表示输入的十进制数,`binary`表示转换后的二进制数,`base`表示二进制数的位数,初始值为1。
2. 然后,我们通过`scanf`函数从键盘读入一个十进制数,保存在`decimal`变量中。
3. 接下来,我们使用`while`循环进行转换,直到`decimal`变成0。在循环中,我们通过取余运算得到`decimal`的最后一位二进制数,将其乘以当前的位数`base`,并加到`binary`上。然后,我们将`decimal`除以2,相当于将其向右移动一位,将`base`乘以10,相当于将二进制数的位数加1。
4. 最后,我们使用`printf`函数输出转换后的二进制数。
注意:此方法只适用于转换较小的十进制数,因为二进制数的位数会随着十进制数的增大而增大,可能会超出整型变量的范围。
阅读全文