不用int写二进制转十进制
时间: 2023-10-30 09:18:27 浏览: 164
可以用以下代码实现二进制转十进制:
```python
binary = "1010" # 二进制字符串
decimal = 0
for i in range(len(binary)):
decimal += int(binary[i]) * 2 ** (len(binary) - i - 1)
print(decimal) # 输出十进制数
```
解释:
1. 首先定义一个二进制字符串 `binary`,其中包含需要转换的二进制数。
2. 然后定义一个十进制数 `decimal` 初始值为0,用来存储最终的十进制结果。
3. 接着使用 `for` 循环遍历二进制字符串的每一位。在每一位上,将其转换为整数类型并乘上对应的权值,这里的权值就是2的指数,指数的值从字符串末尾依次递减。
4. 最后将每一位的乘积相加,得到最终的十进制结果。
相关问题
c# int型十进制转二进制自己写的
以下是C#中将十进制数转换为二进制数的示例代码:
```csharp
int decimalNumber = 10; // 十进制数
string binaryNumber = ""; // 二进制数
while (decimalNumber > 0)
{
int remainder = decimalNumber % 2; // 取余数
binaryNumber = remainder.ToString() + binaryNumber; // 将余数拼接到二进制数前面
decimalNumber /= 2; // 除以2,更新十进制数
}
Console.WriteLine(binaryNumber); // 输出二进制数
```
在上面的示例代码中,我们定义了一个十进制数 `decimalNumber` 和一个空字符串 `binaryNumber`,用于存储二进制数。然后,我们使用 `while` 循环来将十进制数转换为二进制数。在循环中,我们首先使用取余运算符 `%` 来获取十进制数除以2的余数,然后将余数转换为字符串并拼接到二进制数的前面,最后将十进制数除以2以更新十进制数。循环将一直执行,直到十进制数变为0为止。最后,我们使用 `Console.WriteLine()` 函数输出二进制数。
c语言写二进制转十进制
在C语言中,将二进制数转换成十进制可以采用迭代或递归的方式。这里提供一种简单的迭代方法,使用`strtol()`函数,但这需要包含`stdlib.h`库:
```c
#include <stdio.h>
#include <stdlib.h>
// Function to convert binary to decimal using strtol()
int binaryToDecimal(char* binary) {
int decimal = 0;
int base = 1; // 二进制对应的基数
for(int i = strlen(binary) - 1; i >= 0; i--) { // 从右到左遍历字符串
if(binary[i] == '1') { // 如果当前位是1
decimal += base; // 加入该位的值
}
base *= 2; // 基数翻倍,准备处理下一位
}
return decimal;
}
int main() {
char binary[100]; // 存储输入的二进制数
printf("请输入二进制数: ");
scanf("%s", binary);
int decimal_num = binaryToDecimal(binary);
printf("二进制 %s 转换为十进制是: %d\n", binary, decimal_num);
return 0;
}
```
阅读全文