python中数制转化

# python 2.6以后内置函数

# 10进制转为2进制
>>>  bin( 10 )
' 0b1010 '

# 2进制转为10进制
>>>  int( " 1001 " , 2 )
9


# 10进制转为16进制
>>>  hex( 10 )
' 0xa '

# 16进制到10进制
>>>  int( ' ff ' 16 )
255

>>>  int( ' 0xab ' 16 )
171

# 十进制转为八进制
>> print ( " %o "   %   10 )
>> 12


# 16进制到2进制
>>>  bin( 0xa )
' 0b1010 '
>>>
# 10进制到8进制
>>>  oct( 8 )
' 010 '  

# 2进制到16进制
>>>  hex(0b1001)
' 0x9 '
### Python 数制转换方法教程 #### 十进制与其他进制间的相互转换 在 Python 中,可以方便地实现不同进制之间的转换。对于十进制到其他进制的转换,Python 提供了几个内置函数可以直接使用。 - **十进制转二进制** 当需要将一个整数从十进制转换为二进制字符串时,可利用 `bin()` 函数[^2]: ```python number = 10 binary_representation = bin(number)[2:] # 去掉前缀 '0b' print(f"{number} 的二进制表示形式是 {binary_representation}") ``` - **十进制转八进制** 同样地,要得到某个整数对应的八进制表达,则应该应用 `oct()` 函数[^4]: ```python number = 10 octal_representation = oct(number)[2:] # 去掉前缀 '0o' print(f"{number} 的八进制表示形式是 {octal_representation}") ``` - **十进制转十六进制** 如果目标是从十进制变为十六进制的话,那么就应当选用 `hex()` 函数[^1]: ```python number = 10 hexadecimal_representation = hex(number)[2:].upper() # 转换并去掉前缀 '0x' 同时大写化字母部分 print(f"{number} 的十六进制表示形式是 {hexadecimal_representation}") ``` 以上三种方式均会返回带有特定前缀(`0b`, `0o`, 或者 `0x`)的结果串;为了使输出更加简洁明了,在这里通过切片操作去除了这些不必要的字符。 #### 非十进制向十进制转换 针对非十进制的数据想要转变为十进制的情况,可以通过定义辅助函数来处理这个问题。下面给出了一种通用的做法——即先遍历输入序列中的每一位数字,并将其按照所在位置权重累加起来形成最终结果[^3]: ```python def char_to_num(char): """单个字符转化为对应数值""" if '0' <= char <= '9': return ord(char) - ord('0') elif 'A' <= char.upper() <= 'F': # 支持大小写字母 return 10 + ord(char.upper()) - ord('A') def source_to_decimal(temp, base): """任意基数下的字符串转为十进制整数""" temp = str(temp).upper() decimal_value = 0 for digit in reversed(temp): num = char_to_num(digit) decimal_value *= base decimal_value += num return decimal_value # 测试例子 test_cases = [("101", 2), ("755", 8), ("FF", 16)] for case, radix in test_cases: result = source_to_decimal(case, radix) print(f"'{case}' ({radix}-进制) 对应的十进制值为: {result}") ``` 这段代码实现了两个功能:一是把给定的字符映射为其代表的实际数值;二是接收来自用户的自定义基底以及待解析的目标字符串作为参数,进而计算出相应的十进制数值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值