允许将具有任何基的值转换为任何其他基系统中的相应值
change-base的Python项目详细描述
任意基到任意基转换器
允许将给定base(a)
中的值转换为其他base(b)
中的相应值。用户可以提供两个基本系统中使用的符号。
用法:
change_base.change_base(value, initial_base, final_base, initial_base_symbols, final_base_symbols)
描述:
具有base = a
的给定集合的值转换为其他base = b
中的等效值。
例如,十进制值(base10)可以转换为十六进制(base16)或八进制(base8)值。
转换是通过以下两个函数首先转换为十进制等效值,然后再转换为最终的基本版本来实现的:
base_to_decimal(val, base = 73, symbols = None)
decimal_to_base(d, base, symbols = None)
在base_to_decimal
函数中,val
是基值为base
的原始值(输入为字符串)。symbols
是传递系统自定义符号的列表。
在decimal_to_base
函数中,d
表示原始十进制值,symbols
列表用base=base
存储用于此系统的符号
用于表示系统的符号可以作为自定义输入提供,例如值$$&$##
可以属于具有base=3和符号#, &, $
的系统。通过调用:
base_to_decimal("$$&$##", 3, ['#', '&', '$'])
在未提供符号列表的情况下,默认有序符号列表最多使用***(Base73****)。使用的73个符号是(按此顺序):
数字(0-9)
,小写字母(a-z)
,大写字母(A-Z)
,安全符号[ $, -, _, ., +, !, *, ', (, ), , ]
因此,这些符号中的每一个都有一个从0到73的十进制等价=列表索引,用于基转换。
这两个函数组合在函数base_change
的定义中。因此,将一些值{{em1}{{em1}{{em1}{{{em1}{{fsymbols
(可选参数),调用函数:
base_change(val, ibase, fbase, isymbols, fsymbols)
示例用法:
- 从decimal转换为binary:
base_change('123',10,2)
->;'1111011' #Output
- 从binary转换为decimal:
base_change('1111011',2,10)
->;'123' #Output
- 从decimal转换为hex:
base_change('123',10,16)
->;'7b'
- 从base5(使用默认符号
[0,1,2,3,4]
)转换为base5(自定义符号['t','w','i','s','t']
):base_change('123',5,5,None,['t','w','i','s','t'])
->;'wis'
- 从base5(使用自定义符号
['t','w','i','s','t']
)转换为base10(默认符号):base_change('witsittitsisits',5,10,['t','w','i','s','t'],None)
->;'9697104823'
- 与上例相反:
base_change('9697104823',10,5,None,['t','w','i','s','t'])
->;'witsittitsisits'
注释:
- 符号在自定义符号列表中的位置决定其十进制等效值
- 默认符号列表仅包含73个符号。因此,具有默认符号的最大碱基转换达到基数73
- 由于撇号
'
也可用作默认符号,因此输入值字符串应该用双引号括起来- 所有输出都作为字符串生成