允许将具有任何基的值转换为任何其他基系统中的相应值

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)值。

转换是通过以下两个函数首先转换为十进制等效值,然后再转换为最终的基本版本来实现的:

  1. base_to_decimal(val, base = 73, symbols = None)
  2. 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)安全符号[ $, -, _, ., +, !, *, ', (, ), , ]

因此,这些符号中的每一个都有一个从073的十进制等价=列表索引,用于基转换。

这两个函数组合在函数base_change的定义中。因此,将一些值{{em1}{{em1}{{em1}{{{em1}{{>}}和符号集(按顺序)的{em1}{{em1}}{}({em1}}{em1}}}{str 1}}{str1}}}{1}}{{em1}}}{{em1}}{{{{em1}}}}{}{{{{{em1}}}}{1}$'fsymbols可选参数),调用函数:

  • base_change(val, ibase, fbase, isymbols, fsymbols)

示例用法:

  • decimal转换为binarybase_change('123',10,2)->;'1111011' #Output
  • binary转换为decimalbase_change('1111011',2,10)->;'123' #Output
  • decimal转换为hexbase_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
  • 由于撇号'也可用作默认符号,因此输入值字符串应该用双引号括起来
  • 所有输出都作为字符串生成

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何正确使用JdbcTemplate。用钥匙夹更新?   java如何仅在XML的根元素上声明名称空间   使用Selenium和Java可以实现多少拖放功能   java如何从一棵树构造一棵树而无需递归   java My bubble排序似乎运行了太多次,或者是向后运行   创建bean时发生java错误:没有符合条件的bean,需要一个匹配的bean,但找到了3个   java 安卓 6.0生成错误:找不到包   java从列表中创建具有多个对象类型的arraylist<object[]>   安卓重写sendevent。c从c到Java   java为什么不支持流。最大接受整数。作为输入参数进行比较?   java我能阻止RCP编辑器加载吗   java无法在将来从异常传播自定义异常   java在Android中从PHP获取数据   Java创建具有多个GUI框架的程序   java如何解决枚举或接口预期错误   在java中按从高到低的数字排序bubblesort   C++我不能理解java的普通类库的用法   java将图像发送到另一个应用程序   java为什么maven构建失败并出现错误:“包com.microsoft.jdbc.sqlserver不存在”?   python Spark安装问题,java异常