123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- /**
- * Binary Code Decimal resources.
- *
- * @author n1474335 [n1474335@gmail.com]
- * @copyright Crown Copyright 2017
- * @license Apache-2.0
- */
- /**
- * BCD encoding schemes.
- */
- export const ENCODING_SCHEME = [
- "8 4 2 1",
- "7 4 2 1",
- "4 2 2 1",
- "2 4 2 1",
- "8 4 -2 -1",
- "Excess-3",
- "IBM 8 4 2 1",
- ];
- /**
- * Lookup table for the binary value of each digit representation.
- *
- * I wrote a very nice algorithm to generate 8 4 2 1 encoding programatically,
- * but unfortunately it's much easier (if less elegant) to use lookup tables
- * when supporting multiple encoding schemes.
- *
- * "Practicality beats purity" - PEP 20
- *
- * In some schemes it is possible to represent the same value in multiple ways.
- * For instance, in 4 2 2 1 encoding, 0100 and 0010 both represent 2. Support
- * has not yet been added for this.
- */
- export const ENCODING_LOOKUP = {
- "8 4 2 1": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
- "7 4 2 1": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10],
- "4 2 2 1": [0, 1, 4, 5, 8, 9, 12, 13, 14, 15],
- "2 4 2 1": [0, 1, 2, 3, 4, 11, 12, 13, 14, 15],
- "8 4 -2 -1": [0, 7, 6, 5, 4, 11, 10, 9, 8, 15],
- "Excess-3": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
- "IBM 8 4 2 1": [10, 1, 2, 3, 4, 5, 6, 7, 8, 9],
- };
- /**
- * BCD formats.
- */
- export const FORMAT = ["Nibbles", "Bytes", "Raw"];
|