用循环语句编写一个程序,二进制转十进制
时间: 2024-06-13 11:04:30 浏览: 93
这里提供一个用循环语句编写的二进制转十进制的程序:
```
#include <stdio.h>
#include <math.h>
int main() {
long binary, decimal = 0;
int i = 0, remainder;
printf("请输入一个二进制数:");
scanf("%ld", &binary);
while (binary != 0) {
remainder = binary % 10;
binary /= 10;
decimal += remainder * pow(2, i);
++i;
}
printf("转换后的十进制数为:%ld", decimal);
return 0;
}
```
程序的思路是将输入的二进制数从右往左依次取出每一位,然后乘以对应的权值,最后将所有位的结果相加即可得到十进制数。在循环中,我们使用了取余和除法运算来依次取出每一位二进制数,使用了pow函数来计算对应的权值。最后输出转换后的十进制数即可。
相关问题
用c语言编写程序:输入一个十进制整数,输出与其相等的二进制形式,并将二进制保存在一个数组中,然后按相反的顺序输出,编写程序要求使用while语句。
好的,这是一个关于 C 语言编程的问题,根据你的要求,我可以回答。以下是一个示例程序:
```c
#include <stdio.h>
int main() {
int decimal, remainder, binary[32], i = 0;
printf("请输入一个十进制整数:\n");
scanf("%d", &decimal);
while (decimal > 0) {
remainder = decimal % 2;
binary[i] = remainder;
i++;
decimal /= 2;
}
i--; // 循环结束后,i 的值指向最后一位,需要减1才能指向最高位
printf("二进制形式为:\n");
while (i >= 0) {
printf("%d", binary[i]);
i--;
}
return 0;
}
```
该程序先通过 scanf() 函数从标准输入(键盘)获取一个十进制整数,然后使用 while 循环将该数转换为二进制数并存储在数组 binary 中,最后再使用 while 循环倒序输出数组即可。
用c语言写一个程序:输入一个十进制整数,输出与其相等的二进制形式,将二进制保存在一个数组中,然后按相反的顺序输出,编写程序要求使用while语句
以下是一个示例程序,实现输入一个十进制整数并将其转换为二进制形式,并将结果保存在数组中,最后按相反的顺序输出二进制数:
```c
#include <stdio.h>
int main() {
int decimal, binary[32], i = 0;
printf("Enter a decimal number: ");
scanf("%d", &decimal);
// convert decimal to binary
while (decimal > 0) {
binary[i] = decimal % 2;
decimal /= 2;
i++;
}
// print binary number in reverse order
printf("Binary equivalent: ");
for (int j = i - 1; j >= 0; j--) {
printf("%d", binary[j]);
}
printf("\n");
return 0;
}
```
程序首先提示用户输入一个十进制数,然后使用while循环将其转换为二进制形式,并将每一位二进制数保存在数组中。最后,使用另一个for循环反向输出数组中的每一位二进制数,得到最终的二进制形式。
阅读全文