
追梦寻缘为您分享以下优质知识
以下是常见编程语言中二进制转换的方法,综合整理如下:
一、Python
- 十进制转二进制:使用`bin()`函数,结果为前缀`0b`,需通过切片去除前缀(如`bin(42)[2:]`)。
- 二进制转十进制:使用`int()`函数,指定基数为2(如`int('101010', 2)`)。
自定义函数
- 十进制转二进制:通过循环取余和整除操作实现。
- 二进制转十进制:按权展开求和(如`sum(int(bit) * (2 i) for i in range(len(binary))))`)。
二、C语言
位操作符法
使用循环将十进制数与2取余,结果存入数组,最后逆序输出。
递归函数法
通过递归调用将十进制数除以2,将余数逆序输出。
三、Go语言
内置包转换
使用`strconv.FormatInt()`函数,指定基数为2直接转换。
字符编码转换
通过`strconv.ParseInt()`将16进制字符串转为10进制,再转为二进制字符串。
四、Java
内置方法
使用`Integer.toBinaryString()`方法直接转换。
自定义实现
通过循环取余和整除,或递归方式实现。
五、十六进制转二进制
分位转换
将16进制每位转换为4位二进制,再拼接(如`"1A5"`转为`"110100101"`)。
六、二进制转文本
按8位分组
将二进制字符串按每8位一组,通过`chr()`函数转换为字符(如`"01001000"`转为`"H"`)。
示例代码汇总
Python:
```python
十进制转二进制
binary = bin(42)[2:]
print(binary) 输出: 101010
二进制转十进制
decimal = int('101010', 2)
print(decimal) 输出: 42
```
Go语言:
```go
package main
import (
"fmt"
"strconv"
)
func hexToBinary(hex string) string {
binary := ""
for _, char := range hex {
num, _ := strconv.ParseInt(string(char), 16, 64)
binary += fmt.Sprintf("%04b", num)
}
return binary
}
func main() {
hexNum := "1A8F"
binaryNum := hexToBinary(hexNum)
fmt.Printf("16进制数 %s 转换为二进制数为 %sn", hexNum, binaryNum)
// 输出: 16进制数 1A8F 转换为二进制数为 1101001010001111
}
```
以上方法覆盖了常见进制转换需求,可根据具体场景选择合适的语言和实现方式。