在一行输入一个正的纯小数,把它转成二进制小数,在下一行输出。如果转后的二进制小数超过10位或者出现无穷,则保留二进制的小数10位。注:保证输入的值转成二进制后不小于0.0000000001
时间: 2023-04-30 13:04:39 浏览: 94
题目描述:输入一个正的纯小数,把它转成二进制小数,在下一行输出。如果转后的二进制小数超过了10位或者出现无穷,则保留二进制小数的前10位。
思路:首先将小数部分不断乘2,得到的整数部分即为二进制数的每一位,而小数部分则等于之前乘2剩余的小数部分。若小数部分为0,则转换完成。如果遇到小数部分已经在之前出现过,则代表出现了循环,此时可以直接打印之前的结果,或者将当前结果与之前比较,如果相等则代表已经出现了循环并打印结果。
解法:定义两个变量分别存小数部分和转换结果,用一个set判断是否出现循环,循环次数不超过10次,每次都将小数部分乘2,将结果加到二进制结果的末尾,如果小数部分等于0,则转换完成,否则继续上述步骤。如果出现循环,则打印之前的结果并且退出循环,否则在转换结束后打印结果。
相关问题
c语言任意输入一个十进制正整数,将其转换成二进制输出,不要用数组
可以使用位运算符来将十进制正整数转换成二进制。
具体步骤如下:
1. 定义一个变量 `num` 存储输入的十进制正整数,另一个变量 `binary` 存储转换后的二进制数。
2. 初始化 `binary` 为 0。
3. 使用循环将 `num` 转换成二进制数,循环条件为 `num` 不为 0。在循环中,每次将 `num` 的最后一位取出来,然后将其加入到 `binary` 中。
4. 输出转换后的二进制数 `binary`。
以下是示例代码:
```c
#include <stdio.h>
int main()
{
int num, binary = 0, i = 1;
printf("请输入一个十进制正整数:");
scanf("%d", &num);
while (num != 0) {
binary += (num % 2) * i;
i *= 10;
num /= 2;
}
printf("转换后的二进制数为:%d", binary);
return 0;
}
```
注意,这里用了一个变量 `i` 来表示当前位数的权值,初始值为 1。每次循环时,都将其乘以 10,相当于将位数向左移动一位。这个 `i` 可以替换成移位运算符 `<<`,效果是一样的。
用python写 在一行输入一个整数和进制,转换成十进制输出
这是使用Python编写的代码,可以将任何进制的数字转换为十进制:
```
num, base = map(int, input().split())
decimal = 0
power = 0
while num > 0:
digit = num % 10
decimal += digit * pow(base, power)
num //= 10
power += 1
print(decimal)
```
输入格式为:
```
num base
```
其中,num是要转换的数字,base是num的进制。例如,如果要将二进制数字101转换为十进制,输入应该是:
```
101 2
```
输出将是:
```
5
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)