Skip to main content

Hexadecimal calculator

Project description

Xalc is a hexadecimal calculator for embedded systems programmers, implemented as a pre-processor for Python expressions, with a console interface based on IPython.

Features:

  • Mixed calculations with hex, decimal, binary and binary prefix literals

  • Support for undecorated hex literals. Ambiguous literals can be forced to hex by either prefixing or suffixing with ‘x’.

  • Display in hex, decimal, 32-bit binary (with bit position ruler) and binary prefixes (sizes)

  • Simple bit mask construction

  • Bit field extraction operator

  • Highlighting of changed nibbles/bits

  • From IPython: Support for arbitrary Python expressions (minus the ones that conflict with the pre-processed syntax), command history, access to previous results with _* variables, etc.

The following “screenshot” demonstrates some of the features of Xalc. The real program displays the different bases in different colors and highlights changed bits and nibbles with underlines, if your console supports that:

$ xalc
In [1]: deadbeef
0xdeadbeef
Out[1]:
3735928559    │  28─╮ 24─╮ 20─╮ 16─╮ 12─╮  8─╮  4─╮  0─╮
0xdeadbeef    │  1101 1110 1010 1101 1011 1110 1110 1111
3 Gi + 490 Mi + 879 Ki + 751

In [2]: deadbeef $ m5t13
0xdeadbeef >> 5 & ((0x3fe0) >> 5)
Out[2]:
 503           │  28─╮ 24─╮ 20─╮ 16─╮ 12─╮  8─╮  4─╮  0─╮
 0x000001f7    │  0000 0000 0000 0000 0000 0001 1111 0111

In [3]: _ ^ cafe
_ ^ 0xcafe
Out[3]:
 51977         │  28─╮ 24─╮ 20─╮ 16─╮ 12─╮  8─╮  4─╮  0─╮
 0x0000cb09    │  0000 0000 0000 0000 1100 1011 0000 1001
 50 Ki + 777

In [4]: 7f000000 - 35000000x
0x7f000000 - 0x35000000
Out[4]:
 1241513984    │  28─╮ 24─╮ 20─╮ 16─╮ 12─╮  8─╮  4─╮  0─╮
 0x4a000000    │  0100 1010 0000 0000 0000 0000 0000 0000
 1 Gi + 160 Mi

In [5]: m2p0_5_8t9_29_31t31
(0x3|0x20|0x300|0x20000000|0x80000000)
Out[5]:
 2684355363    │  28─╮ 24─╮ 20─╮ 16─╮ 12─╮  8─╮  4─╮  0─╮
 0xa0000323    │  1010 0000 0000 0000 0000 0011 0010 0011
 2 Gi + 512 Mi + 803

In [6]: 2g | m12
0x80000000 | (0x1000)
Out[6]:
 2147487744    │  28─╮ 24─╮ 20─╮ 16─╮ 12─╮  8─╮  4─╮  0─╮
 0x80001000    │  1000 0000 0000 0000 0001 0000 0000 0000
 2 Gi + 4 Ki

In [7]: -45
-45
Out[7]:
 -45           │  28─╮ 24─╮ 20─╮ 16─╮ 12─╮  8─╮  4─╮  0─╮
 0xffffffd3    │  1111 1111 1111 1111 1111 1111 1101 0011

Install with pip:

pip install --upgrade xalc

Or by cloning the git repo and running:

python setup.py install

Run xalc after installation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xalc-0.3.0.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xalc-0.3.0-py2-none-any.whl (8.2 kB view details)

Uploaded Python 2

File details

Details for the file xalc-0.3.0.tar.gz.

File metadata

  • Download URL: xalc-0.3.0.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for xalc-0.3.0.tar.gz
Algorithm Hash digest
SHA256 f6ab0951c0dde40eb9665ed1660024232c36f2c91dd48816331daa4535dc27d4
MD5 49641a14f08391f26f058584e61ed273
BLAKE2b-256 db08756e44962a37867dfdd97d808a4bf2ad58430fe257cd26af283e8dbc5dbf

See more details on using hashes here.

File details

Details for the file xalc-0.3.0-py2-none-any.whl.

File metadata

  • Download URL: xalc-0.3.0-py2-none-any.whl
  • Upload date:
  • Size: 8.2 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for xalc-0.3.0-py2-none-any.whl
Algorithm Hash digest
SHA256 f5c72ce11e791d529aacd960ec1f10b94aae9212d7dd33da0e287903a9982cec
MD5 52c71030d160c85d6dc0699c25660eb2
BLAKE2b-256 9f016e058eb3620b41e9e3779f98953520dbcc30d328dbec2f5465d0c03e915e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page