二进制数字串的实用函数
binstr的Python项目详细描述
binstr-用于创建和操作二进制数字字符串的实用函数集合。它与python版本>;2.6
兼容,包括3.x.
使用这些函数可以使代码中的小错误更容易找到,因为使用断言可以彻底检查所有输入是否有错误。
最新版本。
最新版本始终可以在github页面(https://github.com/davidmcewan/binstr)上找到。
包括:
b\u and()-执行逐位和
b\u or()-执行逐位或
b\xor()-执行逐位xor
b\nand()-执行按位NAND
b_nor()-执行按位NOR
b_nxor()-执行按位nxor
b_not()-执行按位NOT(反转)
b_land()-执行逻辑和
b_lor()-执行逻辑或
b_lxor()-执行逻辑异或
b_lnand()-执行逻辑nand
b_lnor()-执行逻辑nor
b_nxor
int_u to_b()-将正整数转换为二进制项。
例如int_to_b(5)-&g t;'00000101'
frac_to_b()-将正分数转换为二进制字符串。
例如frac_to_b(0.5)->;'10000000'
str_to_b()-将ascii字符串转换为二进制字符串。
例如str_to戋b('abc')->;'011000010110001001100011'
bytes戋u to戋b()-将字节序列转换为二进制字符串。
在python 2.x中,这与str戋u to戋b()相同。
basex戋u to戋b()-将另一个基(4、8、16、32或64)转换为二进制编码。
b_to_int()-从base2二进制编码转换为整数。
b_to_frac()-从base2二进制编码转换为小于1.0的浮点。
b_to_str()-从二进制编码转换为字符串ascii字符。
b_to_bytes()-从二进制编码转换为a byte序列。
在python 2.x中,这与b_u to_str()相同。
b_u to_basex()-从二进制编码转换为另一个基(4、8、16、32或64)。
b_b in_u to_gray()-将二进制代码转换为灰色代码
b_gray_u to_bin()-将灰色代码转换为二进制代码ry code
b_add()-执行add操作
b_mul()-执行mul操作(multiply)
b_blockify()-将二进制字符串分成块
b_validate()-验证给定字符串仅包含0和1_b()比内置的b in()函数灵活得多,尽管
bin()在内部使用。它允许您强制宽度,更改被截断的位,更改对齐方式并更改位结束度。
r/>
from math import log
length=256
shuffle=[in t(int_to_b(i,width=int(log(length,2)),endian='little'),2)
for i in range(length)]
str to_b()也非常灵活,可用于模拟串行通信中的电压水平。o使用"8e1"配置模拟标准rs232端口,发送
数据"hello world!"这很简单。
为清楚起见,char_width参数显示为
,但默认为8。后缀参数用于添加一个停止位。r/>安装
-----------------------------------
将tarball:
cd的内容提取到此目录(其中readme.txt和setup.py是)然后运行:
python setup.py install
注意:这可能需要使用根目录(admi)运行n)私有权。
以防有人感兴趣。
被拒绝的功能包括:
解除锁定-使用str()。替换()
b_到u文件-使用file()。写入(b_到u字节(<;b_string>;,'wb')
文件到u b-使用字节到b(打开(<;path>;,'rb')。读取())
b_日志、b_exp等……-使用适当的数学函数
b戋sub-使用b戋add()和b戋u,而不是为了表示两个人的好意。
b戋div-使用b戋mul和逆
b戋rotl,b戋rotr-使用python切片
b戋reverse-使用<;string>;[:-1]例如,"0101"[:-1]返回"1010"
或者下一个版本包括:
1。使用map()、reduce()和filter()使一些函数的效率更高一些。
没有一个函数是以速度作为最高优先级编写的,因此有些函数的效率相当低。
为除标准base2和gray之外的其他二进制编码添加函数。
这些函数可能包括有符号/无符号指数、有符号/无符号交错
指数、fibonacci、rice、golomb、levenshtein和huffman编码。
我刚才是这样加的。
3.加上两个恭维函数和一个(?).
我知道这很简单,我现在就可以把它放进去了,但是
把它放在1.4版之前似乎更好。
如果有人对binstr有任何提示、建议或一般性的滥用,那么请感觉
可以给我发邮件,甚至可以登录github进行贡献。
兼容,包括3.x.
使用这些函数可以使代码中的小错误更容易找到,因为使用断言可以彻底检查所有输入是否有错误。
最新版本。
最新版本始终可以在github页面(https://github.com/davidmcewan/binstr)上找到。
包括:
b\u and()-执行逐位和
b\u or()-执行逐位或
b\xor()-执行逐位xor
b\nand()-执行按位NAND
b_nor()-执行按位NOR
b_nxor()-执行按位nxor
b_not()-执行按位NOT(反转)
b_land()-执行逻辑和
b_lor()-执行逻辑或
b_lxor()-执行逻辑异或
b_lnand()-执行逻辑nand
b_lnor()-执行逻辑nor
b_nxor
int_u to_b()-将正整数转换为二进制项。
例如int_to_b(5)-&g t;'00000101'
frac_to_b()-将正分数转换为二进制字符串。
例如frac_to_b(0.5)->;'10000000'
str_to_b()-将ascii字符串转换为二进制字符串。
例如str_to戋b('abc')->;'011000010110001001100011'
bytes戋u to戋b()-将字节序列转换为二进制字符串。
在python 2.x中,这与str戋u to戋b()相同。
basex戋u to戋b()-将另一个基(4、8、16、32或64)转换为二进制编码。
b_to_int()-从base2二进制编码转换为整数。
b_to_frac()-从base2二进制编码转换为小于1.0的浮点。
b_to_str()-从二进制编码转换为字符串ascii字符。
b_to_bytes()-从二进制编码转换为a byte序列。
在python 2.x中,这与b_u to_str()相同。
b_u to_basex()-从二进制编码转换为另一个基(4、8、16、32或64)。
b_b in_u to_gray()-将二进制代码转换为灰色代码
b_gray_u to_bin()-将灰色代码转换为二进制代码ry code
b_add()-执行add操作
b_mul()-执行mul操作(multiply)
b_blockify()-将二进制字符串分成块
b_validate()-验证给定字符串仅包含0和1_b()比内置的b in()函数灵活得多,尽管
bin()在内部使用。它允许您强制宽度,更改被截断的位,更改对齐方式并更改位结束度。
r/>
from math import log
length=256
shuffle=[in t(int_to_b(i,width=int(log(length,2)),endian='little'),2)
for i in range(length)]
str to_b()也非常灵活,可用于模拟串行通信中的电压水平。o使用"8e1"配置模拟标准rs232端口,发送
数据"hello world!"这很简单。
为清楚起见,char_width参数显示为
,但默认为8。后缀参数用于添加一个停止位。r/>安装
-----------------------------------
将tarball:
cd的内容提取到此目录(其中readme.txt和setup.py是)然后运行:
python setup.py install
注意:这可能需要使用根目录(admi)运行n)私有权。
以防有人感兴趣。
被拒绝的功能包括:
解除锁定-使用str()。替换()
b_到u文件-使用file()。写入(b_到u字节(<;b_string>;,'wb')
文件到u b-使用字节到b(打开(<;path>;,'rb')。读取())
b_日志、b_exp等……-使用适当的数学函数
b戋sub-使用b戋add()和b戋u,而不是为了表示两个人的好意。
b戋div-使用b戋mul和逆
b戋rotl,b戋rotr-使用python切片
b戋reverse-使用<;string>;[:-1]例如,"0101"[:-1]返回"1010"
或者下一个版本包括:
1。使用map()、reduce()和filter()使一些函数的效率更高一些。
没有一个函数是以速度作为最高优先级编写的,因此有些函数的效率相当低。
为除标准base2和gray之外的其他二进制编码添加函数。
这些函数可能包括有符号/无符号指数、有符号/无符号交错
指数、fibonacci、rice、golomb、levenshtein和huffman编码。
我刚才是这样加的。
3.加上两个恭维函数和一个(?).
我知道这很简单,我现在就可以把它放进去了,但是
把它放在1.4版之前似乎更好。
如果有人对binstr有任何提示、建议或一般性的滥用,那么请感觉
可以给我发邮件,甚至可以登录github进行贡献。