将二进制转换为其他进制(如十进制、八进制、十六进制)或文本,可以通过以下方法实现:
十进制转二进制
除2取余法
将十进制数除以2,记录余数。
将商继续除以2,记录余数。
重复上述步骤,直到商为0。
将所有余数倒序排列,即为二进制数。
二进制转十进制
按权展开法
从二进制数的最低位(最右边)开始,每一位的权重是2的(位数-1)次方。
将每位的数值乘以对应的权重,然后求和。
二进制转八进制
每三位二进制数转化为一位八进制数
将二进制数从低位开始,每三位分为一组(不足三位的前面补0)。
将每组二进制数转换为对应的八进制数,然后依次排列。
二进制转十六进制
每四位二进制数转化为一位十六进制数
将二进制数从低位开始,每四位分为一组(不足四位的前面补0)。
将每组二进制数转换为对应的十六进制数,然后依次排列。
编程语言实现
Python示例
```python
def binary_to_decimal(binary_string):
return int(binary_string, 2)
def binary_to_octal(binary_string):
return oct(int(binary_string, 2))[2:]
def binary_to_hexadecimal(binary_string):
return hex(int(binary_string, 2))[2:]
binary_string = '0100100001100101011011000110110001101111'
print("Decimal:", binary_to_decimal(binary_string))
print("Octal:", binary_to_octal(binary_string))
print("Hexadecimal:", binary_to_hexadecimal(binary_string))
```
Java示例
```java
public class BinaryConverter {
public static void main(String[] args) {
String binaryString = "0100100001100101011011000110110001101111";
System.out.println("Decimal: " + Integer.parseInt(binaryString, 2));
System.out.println("Octal: " + Integer.toOctalString(Integer.parseInt(binaryString, 2), 8));
System.out.println("Hexadecimal: " + Integer.toHexString(Integer.parseInt(binaryString, 2), 16));
}
}
```
C语言示例