This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

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, binary (with bit position ruler) and binary prefixes (sizes)
  • Simple bit mask construction
  • Bit field extraction operator
  • 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, 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.

Release History

Release History

This version
History Node

0.5.0

History Node

0.4.0

History Node

0.3.0

History Node

0.2.0

History Node

0.1.0

Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
xalc-0.5.0-py2-none-any.whl (8.0 kB) Copy SHA256 Checksum SHA256 py2 Wheel May 20, 2017
xalc-0.5.0.tar.gz (5.3 kB) Copy SHA256 Checksum SHA256 Source May 20, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting