给定一个正的二进制数,将其转换为十进制数输出。 例如二进制数:110100101,转成十进制数是:421 例如二进制数:110110110,转成十进制数是:438 格式 输入格式 一个正的二进制数,其长度不超过31位 输出格式 对应的十进制正整数
时间: 2024-05-31 21:07:25 浏览: 49
算法1:
将二进制数从右往左遍历,对于每一位,如果是1,则加上2的当前位数次幂,最后得到的结果就是十进制数。
时间复杂度:O(n)
C++ 代码
class Solution {
public:
int binToDec(string bin) {
int len = bin.size();
int res = 0;
for (int i = 0; i < len; i++) {
if (bin[i] == '1') {
res += pow(2, len - i - 1);
}
}
return res;
}
};
算法2:
使用位运算,从左往右遍历二进制数的每一位,将每一位的值左移对应的位数次幂,然后与当前结果相加。
时间复杂度:O(n)
C++ 代码
class Solution {
public:
int binToDec(string bin) {
int len = bin.size();
int res = 0;
for (int i = 0; i < len; i++) {
int bit = bin[i] - '0';
res = (res << 1) + bit;
}
return res;
}
};
相关问题
用python3编程:给定一个正的二进制数,将其转换为十进制数输出。
好的,这个问题我可以回答。可以使用int()函数将二进制数转换为十进制数,代码如下:
```
binary_num = input("请输入一个正的二进制数:")
decimal_num = int(binary_num, 2)
print("转换后的十进制数为:", decimal_num)
```
其中,input()函数用于获取用户输入的二进制数,int()函数的第二个参数指定了输入的数是二进制数。
python给定一个正的二进制数,将其转换为十进制数输出
可以使用 Python 内置的 `int()` 函数将二进制数转换为十进制数。示例如下:
```python
binary_num = '1010' # 二进制数
decimal_num = int(binary_num, 2) # 将二进制数转换为十进制数
print(decimal_num) # 输出:10
```
其中,`int()` 函数的第一个参数是需要转换的二进制数,第二个参数为进制数,这里传入的是 2 表示二进制。