radix-ops
Convert numbers - both integer and floating-point - from one base to another. Perform arithmetic operations in a given base.
Installation
pip install radix-ops
Usage
from radix import Num
a = Num(20, 16) # The number 20 in base 16
print(a.to(2)) # Convert to base 2 (100000) - inplace conversion
a = Num(20, 16)
b = Num('ff', 16) # FF or 255 in base 16
print(a + b) # Result in base 16 (11F)
c = a.conv(2) # To create a new instance upon conversion (to base 2)
print(a) # 20
print(c) # 100000
An easier way to evaluate expressions:
from radix import expr
# All numbers in base 16. result is a `Num` instance.
result = expr('a + b * c', 16)
print(result) # prints 8E
print(result.to(10)) # prints 142
(Signed) binary numbers
>>> from radix import Bin # `Bin` is a subclass of `Num`
>>> num = Bin(-7)
>>>
>>> # -ve number in 2's complement
>>> num
1001
>>> num.twos_compl() # 2's complement
'1001'
>>> num.ones_compl() # 1's complement
'1000'
>>> num.format(size=8, blanks_every=4) # format 2's complement
'1111 1001'
>>> num.sign_mag() # sign magnitude representation
'1111'
>>>
>>> # -10 in 2's complement
>>> Bin(-5) + Bin(3) - Bin(8) # 2's complement arithmetic
10110
Examples
>>> from radix import Num, expr
>>> Num(value='FE', base=16).to(base=10)
254
>>> Num(1100, 2).to(10)
12
>>> Num(10.75).to(16) # When base is 10, it can be omitted.
A.C
>>> Num(10.75).to(2)
1010.11
>>> pi = 3.141592653589793
>>> Num(pi).to(16)
3.243F6A8885
>>> Num(-1001, 2).to(10)
-9
>>> (Num('1a', 16) - Num('ff', 16)) * Num(2, 16) # (26 - 255) * 2 = -458 = -0x1ca
-1CA
>>> expr('-fe', 16, show=True).to(10)
-Num('fe', 16)
-254
>>> expr('b / (a + 1.5) * 2', 12)
1.B15A50B68B
>>> from radix import dim_radix_compl, radix_compl
>>> dim_radix_compl(Num('012398')) # 9's complement (diminished radix complement)
'987601'
>>> radix_compl(Num('012398')) # 10's complement (radix complement)
'987602'
Note
-
Base should be between 2 and 36.
-
The
.tomethod mutates the number, i.e. changes its value and base. -
Very large or very small floating-point numbers should be in quotes.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
radix-ops-0.3.5.tar.gz
(7.4 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file radix-ops-0.3.5.tar.gz.
File metadata
- Download URL: radix-ops-0.3.5.tar.gz
- Upload date:
- Size: 7.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a85bbd03aac7bb1bac8f364b6cd2e31d3503ab3bdb8ba2b4794789de0935568
|
|
| MD5 |
1051ed7e77ae0b78ccbde61e39beec0d
|
|
| BLAKE2b-256 |
e2ea85448b54e622be4ba9fad0f4274f6ce8a05c2e7c68f39b703913ea4ddba9
|
File details
Details for the file radix_ops-0.3.5-py3-none-any.whl.
File metadata
- Download URL: radix_ops-0.3.5-py3-none-any.whl
- Upload date:
- Size: 8.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0dfabca17b7f170e444f09bef313e8dc10615cc8d9849a6f02e81b7f9e095c04
|
|
| MD5 |
1c602ba85266ffe9408efa224299371f
|
|
| BLAKE2b-256 |
7347c3705ddfe51750dfddbd407603f6b2d3c33068768bbd18c2ac243272df3a
|