又是一个固定宽度的整数(库)
yafwi的Python项目详细描述
yafwi
Yet Another Fixed Width Integer (Library)
Simple fixed with integers for developer experimentation.
Usage
Installation
Available through yafwi - PyPI使用pip install yafwi
。在
一些例子
>>>fromyafwiimport*>>>fromyafwiimport__all__>>>__all__('FixedWidthInt','BaseFixedWidthInt','generate_int','int8','int16','int32','int64','int128','int256','uint8','uint16','uint32','uint64','uint128','uint256','sbyte','byte','short','ushort','int_','uint','long','ulong')>>>int8(120)int8(120)>>>int8(120)+120# Arithmetic with Python int preferves typeint8(-16)>>>int8(120)+int16(120)# Arithmetic will take result in larger widthint16(240)>>>int16.max,int16.min# Utility sentinels(int16(32767),int16(-32768))>>>uint32.min,uint32.max(uint32(0),uint32(4294967295))>>>int8(0b11110000)# Utility represenationsint8(-16)>>>int8(0b11110000).bin'0b11110000'>>>int8(0b11110000).hex'0xf0'>>>(~int8(0b10010110)).bin'0b01101001'>>>(int8(0b10010110)>>2).bin'0b11100101'>>>(int8(0b10010110)<<2).bin'0b01011000'>>>((uint32(uint8.max)<<10|uint8.max)^uint32.max-(1<<31)).bin'0b01111111111111000000001100000000'>>>bytes(uint32(8))# Output depends on system byteorderb'\x08\x00\x00\x00'>>>uint32(8).hex# Output independent of system byteorder'0x00000008'
方便的别名
^{pr2}$任意大小
>>>importyafwi>>>yafwi.generate_int(1024,unsigned=True)<class'yafwi.uint1024'>>>>yafwi.int512<class'yafwi.int512'>>>>yafwi.int3.max,yafwi.int3.min# Including some fun ones... (int3(3),int3(-4))
平台独立性
如果在大端系统上运行,与数字相关联的字节将不同,但是更高级别的功能应该保持不变。在
- 项目
标签: