Chen–Ho encoding#Hertz

{{Short description|Memory-efficient binary encoding of decimal digits}}

{{Use dmy dates|date=May 2019|cs1-dates=y}}

{{Use list-defined references|date=December 2021}}

Chen–Ho encoding is a memory-efficient alternate system of binary encoding for decimal digits.

The traditional system of binary encoding for decimal digits, known as binary-coded decimal (BCD), uses four bits to encode each digit, resulting in significant wastage of binary data bandwidth (since four bits can store 16 states and are being used to store only 10), even when using packed BCD.

The encoding reduces the storage requirements of two decimal digits (100 states) from 8 to 7 bits, and those of three decimal digits (1000 states) from 12 to 10 bits using only simple Boolean transformations avoiding any complex arithmetic operations like a base conversion.

History

In what appears to have been a multiple discovery, some of the concepts behind what later became known as Chen–Ho encoding were independently developed by Theodore M. Hertz in 1969 and by Tien Chi Chen ({{lang|zh|陳天機}}) (1928–) in 1971.

Hertz of Rockwell filed a patent for his encoding in 1969, which was granted in 1971.

Chen first discussed his ideas with Irving Tze Ho ({{lang|zh-tw|何宜慈}}) (1921–2003) in 1971. Chen and Ho were both working for IBM at the time, albeit in different locations. Chen also consulted with Frank Chin Tung to verify the results of his theories independently. IBM filed a patent in their name in 1973, which was granted in 1974. At least by 1973, Hertz's earlier work must have been known to them, as the patent cites his patent as prior art.

With input from Joseph D. Rutledge and John C. McPherson, the final version of the Chen–Ho encoding was circulated inside IBM in 1974 and published in 1975 in the journal Communications of the ACM. This version included several refinements, primarily related to the application of the encoding system. It constitutes a Huffman-like prefix code.

The encoding was referred to as Chen and Ho's scheme in 1975, Chen's encoding in 1982 and became known as Chen–Ho encoding or Chen–Ho algorithm since 2000. After having filed a patent for it in 2001, Michael F. Cowlishaw published a further refinement of Chen–Ho encoding known as densely packed decimal (DPD) encoding in IEE Proceedings – Computers and Digital Techniques in 2002. DPD has subsequently been adopted as the decimal encoding used in the IEEE 754-2008 and ISO/IEC/IEEE 60559:2011 floating-point standards.

Application

Chen noted that the digits zero through seven were simply encoded using three binary digits of the corresponding octal group. He also postulated that one could use a flag to identify a different encoding for the digits eight and nine, which would be encoded using a single bit.

In practice, a series of Boolean transformations are applied to the stream of input bits, compressing BCD encoded digits from 12 bits per three digits to 10 bits per three digits. Reversed transformations are used to decode the resulting coded stream to BCD. Equivalent results can also be achieved by the use of a look-up table.

Chen–Ho encoding is limited to encoding sets of three decimal digits into groups of 10 bits (so called declets). Of the 1024 states possible by using 10 bits, it leaves only 24 states unused (with don't care bits typically set to 0 on write and ignored on read). With only 2.34% wastage it gives a 20% more efficient encoding than BCD with one digit in 4 bits.

Both, Hertz and Chen also proposed similar, but less efficient, encoding schemes to compress sets of two decimal digits (requiring 8 bits in BCD) into groups of 7 bits.

Larger sets of decimal digits could be divided into three- and two-digit groups.

The patents also discuss the possibility to adapt the scheme to digits encoded in any other decimal codes than 8-4-2-1 BCD, like f.e. Excess-3, Excess-6, Jump-at-2, Jump-at-8, Gray, Glixon, O'Brien type-I and Gray–Stibitz code.{{efn|name="NB_Alternative-codes"}} The same principles could also be applied to other bases.

In 1973, some form of Chen–Ho encoding appears to have been utilized in the address conversion hardware of the optional IBM 7070/7074 emulation feature for the IBM System/370 Model 165 and 370 Model 168 computers.

One prominent application uses a 128-bit register to store 33 decimal digits with a three digit exponent, effectively not less than what could be achieved using binary encoding (whereas BCD encoding would need 144 bits to store the same number of digits).

{{anchor|7-bit encodings}}Encodings for two decimal digits

={{anchor|Hertz|7-bit Hertz}}Hertz encoding=

class="wikitable" border="1" style="text-align:center"

|+Hertz decimal data encoding for a single heptad (1969 form)

scope="col" colspan="8"| Binary encoding

|rowspan="7"|

!scope="col" colspan="5"| Decimal digits

scope="col"| Code space (128 states)scope="col"| b6scope="col"| b5

!scope="col"| b4

scope="col"| b3scope="col"| b2scope="col"| b1scope="col"| b0scope="col"| d1scope="col"| d0

!scope="col"| Values encoded

!scope="col"| Description

!scope="col"| Occurrences (100 states)

50% (64 states)0bgcolor=#cef2e0|abgcolor=#cef2e0|bbgcolor=#cef2e0|cbgcolor=#cedff2|dbgcolor=#cedff2|ebgcolor=#cedff2|f

|bgcolor=#cef2e0|0abc

bgcolor=#cedff2|0def(0–7) (0–7)Two lower digits64% (64 states)
bgcolor=#f2f2f2

|12.5% (16 states)

110bgcolor=#cef2e0|cbgcolor=#cedff2|dbgcolor=#cedff2|ebgcolor=#cedff2|f

|bgcolor=#cef2e0|100c

bgcolor=#cedff2|0def(8–9) (0–7)rowspan="2"|One lower digit,
one higher digit
16% (16 states)
12.5% (16 states)101bgcolor=#cedff2|fbgcolor=#cef2e0|abgcolor=#cef2e0|bbgcolor=#cef2e0|c

|bgcolor=#cef2e0|0abc

bgcolor=#cedff2|100f(0–7) (8–9)16% (16 states)
bgcolor=#f2f2f2

|12.5% (16 states, 4 used)

111bgcolor=#cef2e0|cxxbgcolor=#cedff2|f

|bgcolor=#cef2e0|100c

bgcolor=#cedff2|100f(8–9) (8–9)Two higher digits4% (4 states)
bgcolor=#f2f2f2

|12.5% (16 states, 0 used)

100xxxx

|

0% (0 states)

  • This encoding is not parity-preserving.

=Early Chen–Ho encoding, method A=

class="wikitable" border="1" style="text-align:center"

|+Decimal data encoding for a single heptad (early 1971 form, method A)

scope="col" colspan="8"| Binary encoding

|rowspan="6"|

!scope="col" colspan="5"| Decimal digits

scope="col"| Code space (128 states)scope="col"| b6scope="col"| b5

!scope="col"| b4

scope="col"| b3scope="col"| b2scope="col"| b1scope="col"| b0scope="col"| d1scope="col"| d0

!scope="col"| Values encoded

!scope="col"| Description

!scope="col"| Occurrences (100 states)

50% (64 states)0bgcolor=#cef2e0|abgcolor=#cef2e0|bbgcolor=#cef2e0|cbgcolor=#cedff2|dbgcolor=#cedff2|ebgcolor=#cedff2|f

|bgcolor=#cef2e0|0abc

bgcolor=#cedff2|0def(0–7) (0–7)Two lower digits64% (64 states)
bgcolor=#f2f2f2

|25% (32 states, 16 used)

10x (b)bgcolor=#cef2e0|cbgcolor=#cedff2|dbgcolor=#cedff2|ebgcolor=#cedff2|f

|bgcolor=#cef2e0|100c

bgcolor=#cedff2|0def(8–9) (0–7)rowspan="2"|One lower digit,
one higher digit
16% (16 states)
12.5% (16 states)110bgcolor=#cedff2|fbgcolor=#cef2e0|abgcolor=#cef2e0|bbgcolor=#cef2e0|c

|bgcolor=#cef2e0|0abc

bgcolor=#cedff2|100f(0–7) (8–9)16% (16 states)
bgcolor=#f2f2f2

|12.5% (16 states, 4 used)

111bgcolor=#cef2e0|cx (a)x (b)bgcolor=#cedff2|f

|bgcolor=#cef2e0|100c

bgcolor=#cedff2|100f(8–9) (8–9)Two higher digits4% (4 states)

  • This encoding is not parity-preserving.

=Early Chen–Ho encoding, method B=

class="wikitable" border="1" style="text-align:center"

|+Decimal data encoding for a single heptad (early 1971 form, method B)

scope="col" colspan="8"| Binary encoding

|rowspan="7"|

!scope="col" colspan="5"| Decimal digits

scope="col"| Code space (128 states)scope="col"| b6scope="col"| b5

!scope="col"| b4

scope="col"| b3scope="col"| b2scope="col"| b1scope="col"| b0scope="col"| d1scope="col"| d0

!scope="col"| Values encoded

!scope="col"| Description

!scope="col"| Occurrences (100 states)

50% (64 states)0bgcolor=#cef2e0|abgcolor=#cef2e0|bbgcolor=#cef2e0|cbgcolor=#cedff2|dbgcolor=#cedff2|ebgcolor=#cedff2|f

|bgcolor=#cef2e0|0abc

bgcolor=#cedff2|0def(0–7) (0–7)Two lower digits64% (64 states)
bgcolor=#f2f2f2

|12.5% (16 states)

10bgcolor=#cef2e0|c0bgcolor=#cedff2|dbgcolor=#cedff2|ebgcolor=#cedff2|f

|bgcolor=#cef2e0|100c

bgcolor=#cedff2|0def(8–9) (0–7)One lower digit,
one higher digit
16% (16 states)
bgcolor=#f2f2f2

|12.5% (16 states, 4 used)

10bgcolor=#cef2e0|c1xxbgcolor=#cedff2|f

|bgcolor=#cef2e0|100c

bgcolor=#cedff2|100f(8–9) (8–9)Two higher digits4% (4 states)
bgcolor=#f2f2f2

|12.5% (16 states)

11bgcolor=#cedff2|f0bgcolor=#cef2e0|abgcolor=#cef2e0|bbgcolor=#cef2e0|c

|bgcolor=#cef2e0|0abc

bgcolor=#cedff2|100f(0–7) (8–9)One lower digit,
one higher digit
16% (16 states)
bgcolor=#f2f2f2

|12.5% (16 states, 0 used)

11x1xxx

|

0% (0 states)

  • This encoding is not parity-preserving.

={{anchor|7-bit Chen–Ho}}Patented and final Chen–Ho encoding=

class="wikitable" border="1" style="text-align:center"

|+Decimal data encoding for a single heptad (patented 1973 form and final 1975 form)

scope="col" colspan="8"| Binary encoding

|rowspan="6"|

!scope="col" colspan="5"| Decimal digits

scope="col"| Code space (128 states)scope="col"| b6scope="col"| b5

!scope="col"| b4

scope="col"| b3scope="col"| b2scope="col"| b1scope="col"| b0scope="col"| d1scope="col"| d0

!scope="col"| Values encoded

!scope="col"| Description

!scope="col"| Occurrences (100 states)

50% (64 states)0bgcolor=#cef2e0|abgcolor=#cef2e0|bbgcolor=#cef2e0|cbgcolor=#cedff2|dbgcolor=#cedff2|ebgcolor=#cedff2|f

|bgcolor=#cef2e0|0abc

bgcolor=#cedff2|0def(0–7) (0–7)Two lower digits64% (64 states)
bgcolor=#f2f2f2

|25.0% (32 states, 16 used)

10x (b)bgcolor=#cef2e0|cbgcolor=#cedff2|dbgcolor=#cedff2|ebgcolor=#cedff2|f

|bgcolor=#cef2e0|100c

bgcolor=#cedff2|0def(8–9) (0–7)rowspan="2"|One lower digit,
one higher digit
16% (16 states)
12.5% (16 states)111bgcolor=#cef2e0|cbgcolor=#cef2e0|abgcolor=#cef2e0|bbgcolor=#cedff2|f

|bgcolor=#cef2e0|0abc

bgcolor=#cedff2|100f(0–7) (8–9)16% (16 states)
bgcolor=#f2f2f2

|12.5% (16 states, 4 used)

110bgcolor=#cef2e0|cx (a)x (b)bgcolor=#cedff2|f

|bgcolor=#cef2e0|100c

bgcolor=#cedff2|100f(8–9) (8–9)Two higher digits4% (4 states)

  • Assuming certain values for the don't-care bits (f.e. 0), this encoding is parity-preserving.

{{anchor|10-bit encodings}}Encodings for three decimal digits

={{anchor|10-bit Hertz}}Hertz encoding=

class="wikitable" border="1" style="text-align:center"

|+Hertz decimal data encoding for a single declet (1969 form)

scope="col" colspan="11"| Binary encoding

|rowspan="10"|

!scope="col" colspan="6"| Decimal digits

scope="col"| Code space (1024 states)scope="col"| b9scope="col"| b8scope="col"| b7scope="col"| b6scope="col"| b5

!scope="col"| b4

scope="col"| b3scope="col"| b2scope="col"| b1scope="col"| b0

!scope="col"| d2

scope="col"| d1scope="col"| d0

!scope="col"| Values encoded

!scope="col"| Description

!scope="col"| Occurrences (1000 states)

50.0% (512 states)0bgcolor=#cef2e0|abgcolor=#cef2e0|bbgcolor=#cef2e0|cbgcolor=#cedff2|dbgcolor=#cedff2|ebgcolor=#cedff2|fbgcolor=#ddcef2|gbgcolor=#ddcef2|hbgcolor=#ddcef2|i

|bgcolor=#cef2e0|0abc

bgcolor=#cedff2|0defbgcolor=#ddcef2|0ghi(0–7) (0–7) (0–7)Three lower digits51.2% (512 states)
bgcolor=#f2f2f2

|rowspan=3|37.5% (384 states)

100bgcolor=#cef2e0|cbgcolor=#cedff2|dbgcolor=#cedff2|ebgcolor=#cedff2|fbgcolor=#ddcef2|gbgcolor=#ddcef2|hbgcolor=#ddcef2|i

|bgcolor=#cef2e0|100c

bgcolor=#cedff2|0defbgcolor=#ddcef2|0ghi(8–9) (0–7) (0–7)rowspan=3| Two lower digits,
one higher digit
rowspan=3|38.4% (384 states)
bgcolor=#f2f2f2

|1

01bgcolor=#cedff2|fbgcolor=#cef2e0|abgcolor=#cef2e0|bbgcolor=#cef2e0|cbgcolor=#ddcef2|gbgcolor=#ddcef2|hbgcolor=#ddcef2|i

|bgcolor=#cef2e0|0abc

bgcolor=#cedff2|100fbgcolor=#ddcef2|0ghi(0–7) (8–9) (0–7)
bgcolor=#f2f2f2

|1

10bgcolor=#ddcef2|ibgcolor=#cef2e0|abgcolor=#cef2e0|bbgcolor=#cef2e0|c

|bgcolor=#cedff2|d

bgcolor=#cedff2|ebgcolor=#cedff2|f

|bgcolor=#cef2e0|0abc

bgcolor=#cedff2|0defbgcolor=#ddcef2|100i(0–7) (0–7) (8–9)
rowspan=3|9.375% (96 states)111bgcolor=#cedff2|f00bgcolor=#ddcef2|ibgcolor=#cef2e0|abgcolor=#cef2e0|bbgcolor=#cef2e0|c

|bgcolor=#cef2e0|0abc

bgcolor=#cedff2|100fbgcolor=#ddcef2|100i(0–7) (8–9) (8–9)rowspan=3| One lower digit,
two higher digits
rowspan=3|9.6% (96 states)
111bgcolor=#cef2e0|c01bgcolor=#ddcef2|ibgcolor=#cedff2|dbgcolor=#cedff2|ebgcolor=#cedff2|f

|bgcolor=#cef2e0|100c

bgcolor=#cedff2|0defbgcolor=#ddcef2|100i(8–9) (0–7) (8–9)
111bgcolor=#cef2e0|c10bgcolor=#cedff2|fbgcolor=#ddcef2|gbgcolor=#ddcef2|hbgcolor=#ddcef2|ibgcolor=#cef2e0|100cbgcolor=#cedff2|100fbgcolor=#ddcef2|0ghi(8–9) (8–9) (0–7)
bgcolor=#f2f2f2

|3.125% (32 states, 8 used)

111bgcolor=#cef2e0|c11bgcolor=#cedff2|f(0)(0)bgcolor=#ddcef2|i

|bgcolor=#cef2e0|100c

bgcolor=#cedff2|100fbgcolor=#ddcef2|100i(8–9) (8–9) (8–9)Three higher digits, bits b2 and b1 are don't care0.8% (8 states)

  • This encoding is not parity-preserving.

=Early Chen–Ho encoding=

class="wikitable" border="1" style="text-align:center"

|+Decimal data encoding for a single declet (early 1971 form)

scope="col" colspan="11"| Binary encoding

|rowspan="10"|

!scope="col" colspan="6"| Decimal digits

scope="col"| Code space (1024 states)scope="col"| b9scope="col"| b8scope="col"| b7scope="col"| b6scope="col"| b5

!scope="col"| b4

scope="col"| b3scope="col"| b2scope="col"| b1scope="col"| b0

!scope="col"| d2

scope="col"| d1scope="col"| d0

!scope="col"| Values encoded

!scope="col"| Description

!scope="col"| Occurrences (1000 states)

50.0% (512 states)0bgcolor=#cef2e0|abgcolor=#cef2e0|bbgcolor=#cef2e0|cbgcolor=#cedff2|dbgcolor=#cedff2|ebgcolor=#cedff2|fbgcolor=#ddcef2|gbgcolor=#ddcef2|hbgcolor=#ddcef2|i

|bgcolor=#cef2e0|0abc

bgcolor=#cedff2|0defbgcolor=#ddcef2|0ghi(0–7) (0–7) (0–7)Three lower digits51.2% (512 states)
bgcolor=#f2f2f2

|rowspan=3|37.5% (384 states)

100bgcolor=#cef2e0|cbgcolor=#cedff2|dbgcolor=#cedff2|ebgcolor=#cedff2|fbgcolor=#ddcef2|gbgcolor=#ddcef2|hbgcolor=#ddcef2|i

|bgcolor=#cef2e0|100c

bgcolor=#cedff2|0defbgcolor=#ddcef2|0ghi(8–9) (0–7) (0–7)rowspan=3| Two lower digits,
one higher digit
rowspan=3|38.4% (384 states)
bgcolor=#f2f2f2

|1

01bgcolor=#cedff2|fbgcolor=#ddcef2|gbgcolor=#ddcef2|hbgcolor=#ddcef2|ibgcolor=#cef2e0|abgcolor=#cef2e0|bbgcolor=#cef2e0|c

|bgcolor=#cef2e0|0abc

bgcolor=#cedff2|100fbgcolor=#ddcef2|0ghi(0–7) (8–9) (0–7)
bgcolor=#f2f2f2

|1

10bgcolor=#ddcef2|ibgcolor=#cef2e0|abgcolor=#cef2e0|bbgcolor=#cef2e0|cbgcolor=#cedff2|dbgcolor=#cedff2|ebgcolor=#cedff2|f

|bgcolor=#cef2e0|0abc

bgcolor=#cedff2|0defbgcolor=#ddcef2|100i(0–7) (0–7) (8–9)
rowspan=3|9.375% (96 states)11100bgcolor=#cedff2|fbgcolor=#ddcef2|ibgcolor=#cef2e0|abgcolor=#cef2e0|bbgcolor=#cef2e0|c

|bgcolor=#cef2e0|0abc

bgcolor=#cedff2|100fbgcolor=#ddcef2|100i(0–7) (8–9) (8–9)rowspan=3| One lower digit,
two higher digits
rowspan=3|9.6% (96 states)
11101bgcolor=#ddcef2|ibgcolor=#cef2e0|cbgcolor=#cedff2|dbgcolor=#cedff2|ebgcolor=#cedff2|f

|bgcolor=#cef2e0|100c

bgcolor=#cedff2|0defbgcolor=#ddcef2|100i(8–9) (0–7) (8–9)
11110bgcolor=#cef2e0|cbgcolor=#cedff2|fbgcolor=#ddcef2|gbgcolor=#ddcef2|hbgcolor=#ddcef2|ibgcolor=#cef2e0|100cbgcolor=#cedff2|100fbgcolor=#ddcef2|0ghi(8–9) (8–9) (0–7)
bgcolor=#f2f2f2

|3.125% (32 states, 8 used)

11111bgcolor=#cef2e0|cbgcolor=#cedff2|fbgcolor=#ddcef2|i(0)(0)

|bgcolor=#cef2e0|100c

bgcolor=#cedff2|100fbgcolor=#ddcef2|100i(8–9) (8–9) (8–9)Three higher digits, bits b1 and b0 are don't care0.8% (8 states)

  • This encoding is not parity-preserving.

=Patented Chen–Ho encoding=

class="wikitable" border="1" style="text-align:center"

|+Decimal data encoding for a single declet (patented 1973 form)

scope="col" colspan="11"| Binary encoding

|rowspan="10"|

!scope="col" colspan="6"| Decimal digits

scope="col"| Code space (1024 states)scope="col"| b9scope="col"| b8scope="col"| b7scope="col"| b6scope="col"| b5

!scope="col"| b4

scope="col"| b3scope="col"| b2scope="col"| b1scope="col"| b0

!scope="col"| d2

scope="col"| d1scope="col"| d0

!scope="col"| Values encoded

!scope="col"| Description

!scope="col"| Occurrences (1000 states)

50.0% (512 states)0bgcolor=#cef2e0|abgcolor=#cef2e0|bbgcolor=#cedff2|dbgcolor=#cedff2|ebgcolor=#ddcef2|gbgcolor=#ddcef2|hbgcolor=#cef2e0|cbgcolor=#cedff2|fbgcolor=#ddcef2|i

|bgcolor=#cef2e0|0abc

bgcolor=#cedff2|0defbgcolor=#ddcef2|0ghi(0–7) (0–7) (0–7)Three lower digits51.2% (512 states)
bgcolor=#f2f2f2

|rowspan=3|37.5% (384 states)

100bgcolor=#cedff2|dbgcolor=#cedff2|ebgcolor=#ddcef2|gbgcolor=#ddcef2|hbgcolor=#cef2e0|cbgcolor=#cedff2|fbgcolor=#ddcef2|i

|bgcolor=#cef2e0|100c

bgcolor=#cedff2|0defbgcolor=#ddcef2|0ghi(8–9) (0–7) (0–7)rowspan=3| Two lower digits,
one higher digit
rowspan=3|38.4% (384 states)
bgcolor=#f2f2f2

|1

01bgcolor=#cef2e0|abgcolor=#cef2e0|bbgcolor=#ddcef2|gbgcolor=#ddcef2|hbgcolor=#cef2e0|cbgcolor=#cedff2|fbgcolor=#ddcef2|i

|bgcolor=#cef2e0|0abc

bgcolor=#cedff2|100fbgcolor=#ddcef2|0ghi(0–7) (8–9) (0–7)
bgcolor=#f2f2f2

|1

10bgcolor=#cedff2|dbgcolor=#cedff2|ebgcolor=#cef2e0|abgcolor=#cef2e0|bbgcolor=#cef2e0|cbgcolor=#cedff2|fbgcolor=#ddcef2|i

|bgcolor=#cef2e0|0abc

bgcolor=#cedff2|0defbgcolor=#ddcef2|100i(0–7) (0–7) (8–9)
rowspan=3|9.375% (96 states)11110bgcolor=#cef2e0|abgcolor=#cef2e0|bbgcolor=#cef2e0|cbgcolor=#cedff2|fbgcolor=#ddcef2|i

|bgcolor=#cef2e0|0abc

bgcolor=#cedff2|100fbgcolor=#ddcef2|100i(0–7) (8–9) (8–9)rowspan=3| One lower digit,
two higher digits
rowspan=3|9.6% (96 states)
11101bgcolor=#cedff2|dbgcolor=#cedff2|ebgcolor=#cef2e0|cbgcolor=#cedff2|fbgcolor=#ddcef2|i

|bgcolor=#cef2e0|100c

bgcolor=#cedff2|0defbgcolor=#ddcef2|100i(8–9) (0–7) (8–9)
11100bgcolor=#ddcef2|gbgcolor=#ddcef2|hbgcolor=#cef2e0|cbgcolor=#cedff2|fbgcolor=#ddcef2|i

|bgcolor=#cef2e0|100c

bgcolor=#cedff2|100fbgcolor=#ddcef2|0ghi(8–9) (8–9) (0–7)
bgcolor=#f2f2f2

|3.125% (32 states, 8 used)

11111(0)(0)bgcolor=#cef2e0|cbgcolor=#cedff2|fbgcolor=#ddcef2|i

|bgcolor=#cef2e0|100c

bgcolor=#cedff2|100fbgcolor=#ddcef2|100i(8–9) (8–9) (8–9)Three higher digits, bits b4 and b3 are don't care0.8% (8 states)

  • This encoding is not parity-preserving.

={{anchor|10-bit Chen–Ho}}Final Chen–Ho encoding=

class="wikitable" border="1" style="text-align:center"

|+Chen-Ho decimal data encoding for a single declet (final 1975 form)

scope="col" colspan="11"| Binary encoding

|rowspan="10"|

!scope="col" colspan="6"| Decimal digits

scope="col"| Code space (1024 states)scope="col"| b9scope="col"| b8scope="col"| b7scope="col"| b6scope="col"| b5

!scope="col"| b4

scope="col"| b3scope="col"| b2scope="col"| b1scope="col"| b0

!scope="col"| d2

scope="col"| d1scope="col"| d0

!scope="col"| Values encoded

!scope="col"| Description

!scope="col"| Occurrences (1000 states)

50.0% (512 states)0bgcolor=#cef2e0|abgcolor=#cef2e0|bbgcolor=#cef2e0|cbgcolor=#cedff2|dbgcolor=#cedff2|ebgcolor=#cedff2|fbgcolor=#ddcef2|gbgcolor=#ddcef2|hbgcolor=#ddcef2|i

|bgcolor=#cef2e0|0abc

bgcolor=#cedff2|0defbgcolor=#ddcef2|0ghi(0–7) (0–7) (0–7)Three lower digits51.2% (512 states)
bgcolor=#f2f2f2

|rowspan=3|37.5% (384 states)

100bgcolor=#cef2e0|cbgcolor=#cedff2|dbgcolor=#cedff2|ebgcolor=#cedff2|fbgcolor=#ddcef2|gbgcolor=#ddcef2|hbgcolor=#ddcef2|i

|bgcolor=#cef2e0|100c

bgcolor=#cedff2|0defbgcolor=#ddcef2|0ghi(8–9) (0–7) (0–7)rowspan=3| Two lower digits,
one higher digit
rowspan=3|38.4% (384 states)
bgcolor=#f2f2f2

|1

01bgcolor=#cef2e0|cbgcolor=#cef2e0|abgcolor=#cef2e0|bbgcolor=#cedff2|fbgcolor=#ddcef2|gbgcolor=#ddcef2|hbgcolor=#ddcef2|i

|bgcolor=#cef2e0|0abc

bgcolor=#cedff2|100fbgcolor=#ddcef2|0ghi(0–7) (8–9) (0–7)
bgcolor=#f2f2f2

|1

10bgcolor=#cef2e0|cbgcolor=#cedff2|dbgcolor=#cedff2|ebgcolor=#cedff2|fbgcolor=#cef2e0|abgcolor=#cef2e0|bbgcolor=#ddcef2|i

|bgcolor=#cef2e0|0abc

bgcolor=#cedff2|0defbgcolor=#ddcef2|100i(0–7) (0–7) (8–9)
rowspan=3|9.375% (96 states)111bgcolor=#cef2e0|c00bgcolor=#cedff2|fbgcolor=#cef2e0|abgcolor=#cef2e0|bbgcolor=#ddcef2|i

|bgcolor=#cef2e0|0abc

bgcolor=#cedff2|100fbgcolor=#ddcef2|100i(0–7) (8–9) (8–9)rowspan=3| One lower digit,
two higher digits
rowspan=3|9.6% (96 states)
111bgcolor=#cef2e0|c01bgcolor=#cedff2|fbgcolor=#cedff2|dbgcolor=#cedff2|ebgcolor=#ddcef2|i

|bgcolor=#cef2e0|100c

bgcolor=#cedff2|0defbgcolor=#ddcef2|100i(8–9) (0–7) (8–9)
111bgcolor=#cef2e0|c10bgcolor=#cedff2|fbgcolor=#ddcef2|gbgcolor=#ddcef2|hbgcolor=#ddcef2|ibgcolor=#cef2e0|100cbgcolor=#cedff2|100fbgcolor=#ddcef2|0ghi(8–9) (8–9) (0–7)
bgcolor=#f2f2f2

|3.125% (32 states, 8 used)

111bgcolor=#cef2e0|c11bgcolor=#cedff2|f(0)(0)bgcolor=#ddcef2|i

|bgcolor=#cef2e0|100c

bgcolor=#cedff2|100fbgcolor=#ddcef2|100i(8–9) (8–9) (8–9)Three higher digits, bits b2 and b1 are don't care0.8% (8 states)

  • This encoding is not parity-preserving.

Storage efficiency

class="wikitable" border="1" style="text-align:center"

|+Storage efficiency

colspan="4"|BCD

! colspan="4"|Necessary bits

! colspan="2"|Bit difference

Digits

!States

!Bits

!Binary code space

!Binary encoding [A]

!2-digit encoding [B]

!3-digit encoding [C]

!Mixed encoding

!Mixed vs. Binary

!Mixed vs. BCD

1{{val|10}}4{{val|16}}4(7)(10)4 [1×A]00
2{{val|100}}8{{val|128}}77(10)7 [1×B]0−1
3{{val|1000}}12{{val|1024}}10(14)1010 [1×C]0−2
4{{val|10000}}16{{val|16384}}1414(20)14 [2×B]0−2
5{{val|100000}}20{{val|131072}}17(21)(20)17 [1×C+1×B]0−3
6{{val|1000000}}24{{val|1048576}}20212020 [2×C]0−4
7{{val|10000000}}28{{val|16777216}}24(28)(30)24 [2×C+1×A]0−4
8{{val|100000000}}32{{val|134217728}}2728(30)27 [2×C+1×B]0−5
9{{val|1000000000}}36{{val|1073741824}}30(35)3030 [3×C]0−6
10{{val|10000000000}}40{{val|17179869184}}3435(40)34 [3×C+1×A]0−6
11{{val|100000000000}}44{{val|137438953472}}37(42)(40)37 [3×C+1×B]0−7
12{{val|1000000000000}}48{{val|1099511627776}}40424040 [4×C]0−8
13{{val|10000000000000}}52{{val|17592186044416}}44(49)(50)44 [4×C+1×A]0−8
14{{val|100000000000000}}56{{val|140737488355328}}4749(50)47 [4×C+1×B]0−9
15{{val|1000000000000000}}60{{val|1125899906842624}}50(56)5050 [5×C]0−10
16{{val|10000000000000000}}64{{val|18014398509481984}}5456(60)54 [5×C+1×A]0−10
17{{val|100000000000000000}}68{{val|144115188075855872}}57(63)(60)57 [5×C+1×B]0−11
18{{val|1000000000000000000}}72{{val|1152921504606846976}}60636060 [6×C]0−12
19{{val|10000000000000000000}}76{{val|18446744073709551616}}64(70)(70)64 [6×C+1×A]0−12
20806770(70)67 [6×C+1×B]0−13
218470(77)7070 [7×C]0−14
22887477(80)74 [7×C+1×A]0−14
239277(84)(80)77 [7×C+1×B]0−15
249680848080 [8×C]0−16
2510084(91)(90)84 [8×C+1×A]0−16
261048791(90)87 [8×C+1×B]0−17
2710890(98)9090 [9×C]0−18
281129498(100)94 [9×C+1×A]0−18
2911697(105)(100)97 [9×C+1×B]0−19
30120100105100100 [10×C]0−20
31124103(112)(110)104 [10×C+1×A]+1−20
32128107112(110)107 [10×C+1×B]0−21
33132110(119)110110 [11×C]0−22
34136113119(120)114 [11×C+1×A]+1−22
35140117(126)(120)117 [11×C+1×B]0−23
36144120126120120 [12×C]0−24
37148123(133)(130)124 [12×C+1×A]+1−24
38152127133(130)127 [12×C+1×B]0−25

See also

Notes

{{Notelist|refs=

{{efn|name="NB_Alternative-codes"|Some 4-bit decimal codes are particularly well suited as alternatives to the 8-4-2-1 BCD code: Jump-at-8 code uses the same values for the ordered states 0 to 7, whereas in the Gray BCD and Glixon codes the values for the states 0 to 7 are still from the same set, but ordered differently (which, however, is transparent for the Hertz, Chen–Ho or densely packed decimal (DPD) encodings, as they pass through the bits unaltered). In these four codes, the most-significant bit can be used as a flag denoting "large" values. For the two "large" values, all but one bits remain static (the two middle bits are always zero for 8-4-2-1 and one for Jump-at-8 code, whilst for Gray BCD code one bit is set and the other cleared, whereas for Glixon code the two lower bits are always zero and one bit inverted, thus the two "large" values being transparently swapped), requiring only minor adaptations in the encoding. Three other codes can be conveniently split into groups of eight and two states as well, containing values from two ranges of consecutive bit patterns. In the case of the and Excess-6 BCD and Jump-at-2 codes, the most-significant bit can still be used to distinguish between the two groups, however, compared to the Jump-at-8 code, the group of small values now contains only two states and the larger group contains the eight larger values. In the case of the O'Brien type-I and Gray–Stibitz code, the next-most significant bit can serve as a flag bit instead, with the remaining bits again forming two groups of consecutive values. Therefore, these differences remain transparent for the encoding.}}

}}

References

{{Reflist|refs=

{{cite book |author-last1=Muller |author-first1=Jean-Michel |author-last2=Brisebarre |author-first2=Nicolas |author-last3=de Dinechin |author-first3=Florent |author-last4=Jeannerod |author-first4=Claude-Pierre |author-last5=Lefèvre |author-first5=Vincent |author-last6=Melquiond |author-first6=Guillaume |author-last7=Revol |author-first7=Nathalie|author7-link=Nathalie Revol |author-last8=Stehlé |author-first8=Damien |author-last9=Torres |author-first9=Serge |title=Handbook of Floating-Point Arithmetic |date=2010 |publisher=Birkhäuser |edition=1 |isbn=978-0-8176-4704-9 |doi=10.1007/978-0-8176-4705-6 |lccn=2009939668 |url=https://cds.cern.ch/record/1315760}}

{{cite news |title=We hear that... |author= |date=1959 |newspaper=Physics Today |issn=0031-9228 |volume=12 |number=2 |publisher=American Institute of Physics (AIP) |doi=10.1063/1.3060696 |page=62 |url=https://physicstoday.scitation.org/doi/abs/10.1063/1.3060696?journalCode=pto |access-date=2020-06-24 |url-status=live |archive-url=https://archive.today/20200624190918/https://physicstoday.scitation.org/doi/abs/10.1063/1.3060696?journalCode=pto& |archive-date=2020-06-24}} (1 page)

{{cite web |title=Honorary Fellow - A Citation - Professor Chen Tien Chi |author-first=David |author-last=Parker |date=2003 |publisher=The Chinese University of Hong Kong (CUHK) |series=List of Honorary Fellows |url=https://www.cpr.cuhk.edu.hk/honfellow/Citation/en/2_chentienchi.pdf |access-date=2020-06-24 |url-status=live |archive-url=https://web.archive.org/web/20141225133208/http://www.cpr.cuhk.edu.hk/honfellow/Citation/en/2_chentienchi.pdf |archive-date=2014-12-25}} (2 pages)

{{cite web |title=CHEN Tien Chi |date=2013-01-12 |author= |publisher=The Chinese University of Hong Kong (CUHK) |url=http://www.cse.cuhk.edu.hk/v7/en/people/tcchen.html |access-date=2016-02-07 |url-status=dead |archive-url=https://web.archive.org/web/20151023061814/http://www.cse.cuhk.edu.hk/v7/en/people/tcchen.html |archive-date=2015-10-23}}

{{cite web |script-title=zh:陳天機 Chen Tien Chi: 如夢令 Ru Meng Ling (As If Dreaming) |author-first=Andrew W. F. |author-last=Wong |translator-first=Huang (黃) |translator-last=Hongfa (宏發) |language=zh, en |date=2014-08-15 |orig-date=2014-07-04, 2014-06-23, 2013-09-16, 2007-07-16, 2007-06-07, 2007-06-04, 2007-05-20, 2007-02-16 |work=Classical Chinese Poems in English |url=http://chinesepoemsinenglish.blogspot.com/2014/07/chen-tien-chi-ru-meng-ling-as-if.html |access-date=2020-06-25 |url-status=live |archive-url=https://web.archive.org/web/20200625031458/http://chinesepoemsinenglish.blogspot.com/2014/07/chen-tien-chi-ru-meng-ling-as-if.html |archive-date=2020-06-25}}

{{cite news |title=Scientist Given Task To Set Up Science-Oriented Industrial Park |author= |newspaper=Science Bulletin |issn=1607-3509 |oclc=1658005 |volume=11 |number=2 |publisher=National Science Council |location=Taipei, Taiwan |date=1979-02-01 |page=1 |url=https://ejournal.stpi.narl.org.tw/index/items/download?viId=D9F1CC76-75FC-4440-8530-AC0B4B9CCE82&usg=AOvVaw0NgCMp2GIN8d2aXRbfhNMt |access-date=2020-06-24 |url-status=live |archive-url=https://web.archive.org/web/20200625221507/https://ejournal.stpi.narl.org.tw/index/items/download?viId=D9F1CC76-75FC-4440-8530-AC0B4B9CCE82&usg=AOvVaw0NgCMp2GIN8d2aXRbfhNMt |archive-date=2020-06-25}} (1 page) [https://ejournal.stpi.narl.org.tw/index/volueItem/detail?id=D9F1CC76-75FC-4440-8530-AC0B4B9CCE82]

{{cite web |title=High-Tech Leadership: Irving T. Ho |author-last=Tseng |author-first=Li-Ling |date=1988-04-01 |publisher=Taiwan Info |url=http://taiwaninfo.nat.gov.tw/ct.asp?xItem=105983&ctNode=124 |access-date=2016-02-08 |url-status=dead |archive-url=https://web.archive.org/web/20160208172221/http://taiwaninfo.nat.gov.tw/ct.asp?xItem=105983&ctNode=124 |archive-date=2016-02-08}} [http://taiwantoday.tw/news.php?unit=8,29,32,45&post=13185]

{{cite web |title=Taiwan's Silicon Valley: The Evolution of Hsinchu Industrial Park |work=Freeman Spogli Institute for International Studies |author= |location=Stanford University, Stanford, California, USA |date=2000-01-11 |url=http://fsi.stanford.edu/events/taiwans_silicon_valley_the_evolution_of_hsinchu_industrial_park |access-date=2017-05-02 |url-status=live |archive-url=https://web.archive.org/web/20200626132321/https://fsi.stanford.edu/events/taiwans_silicon_valley_the_evolution_of_hsinchu_industrial_park |archive-date=2020-06-26}}

{{cite web |title=Irving T. Ho |author= |date=2003-04-26 |newspaper=San Jose Mercury News |url=https://www.legacy.com/obituaries/mercurynews/obituary.aspx?n=irving-t-ho&pid=967196 |access-date=2020-06-25 |url-status=live |archive-url=https://web.archive.org/web/20200625045634/https://www.legacy.com/obituaries/mercurynews/obituary.aspx?n=irving-t-ho&pid=967196 |archive-date=2020-06-25}}

{{cite web |script-title=zh:IBM资深专家Frank Tung博士8月4日来我校演讲 |language=zh, en |trans-title=IBM senior expert Dr. Frank Tung came to our school on 4 August to give a speech |author= |date=2004-08-04 |location=Guangzhou, China |publisher=South China University of Technology (SCUT) |url=http://www2.scut.edu.cn/software/news/news13.htm |access-date=2016-02-06 |url-status=dead |archive-url=https://web.archive.org/web/20041208004402/http://www2.scut.edu.cn/software/news/news13.htm |archive-date=2004-12-08}}

{{cite book |author-first=Tien Chi |author-last=Chen |author-link=Tien Chi Chen |title=Decimal-binary integer conversion scheme |date=1971-03-12 |type=Internal memo to Irving Tze Ho |location=IBM San Jose Research Laboratory, San Jose, California, USA |publisher=IBM}}

{{cite book |author-first=Tien Chi |author-last=Chen |author-link=Tien Chi Chen |title=Decimal Number Compression |date=1971-03-29 |type=Internal memo to Irving Tze Ho |pages=1–4 |location=IBM San Jose Research Laboratory, San Jose, California, USA |publisher=IBM |url=http://speleotrove.com/decimal/chen1971-memo-to-Ho.pdf |access-date=2016-02-07 |url-status=live |archive-url=https://web.archive.org/web/20121017134315/http://speleotrove.com/decimal/chen1971-memo-to-Ho.pdf |archive-date=2012-10-17}} (4 pages)

{{cite journal |title=Storage-Efficient Representation of Decimal Data |author-first1=Tien Chi |author-last1=Chen |author-link1=Tien Chi Chen |author-first2=Irving Tze |author-last2=Ho |author-link2=Irving T. Ho |year=1974a |date=1974-06-25 |journal=Research Report RJ 1420 |type=Technical report |location=IBM San Jose Research Laboratory, San Jose, California, USA |publisher=IBM}}

{{cite journal |title=Storage-Efficient Representation of Decimal Data |author-first1=Tien Chi |author-last1=Chen |author-link1=Tien Chi Chen |author-first2=Irving Tze |author-last2=Ho |author-link2=Irving T. Ho |date=January 1975 |orig-date=April 1974 |journal=Communications of the ACM |issn=0001-0782 |publisher=Association for Computing Machinery |volume=18 |issue=1 |pages=49–52 |doi=10.1145/360569.360660 |s2cid=14301378 |location=IBM San Jose Research Laboratory, San Jose, California, USA & IBM Systems Products Division, Poughkeepsie/East Fishkill, New York, USA |doi-access=free }} (4 pages)

{{cite journal |title=Comments on a paper by T. C. Chen and I. T. Ho |author-first=Alan Jay |author-last=Smith |author-link=Alan Jay Smith |date=August 1975 |orig-date=April 1975 |journal=Communications of the ACM |volume=18 |issue=8 |page=463 |doi=10.1145/360933.360986 |id={{CODEN|CACMA2}} |issn=0001-0782 |eissn=1557-7317 |location=University of California, Berkeley, California, USA |s2cid=20910959 |url=https://dl.acm.org/doi/pdf/10.1145/360933.360986 |access-date=2020-06-03 |url-status=live |archive-url=https://web.archive.org/web/20200603163344/https://dl.acm.org/doi/pdf/10.1145/360933.360986 |archive-date=2020-06-03}} (1 page) (NB. A publication also discussing Chen–Ho alternatives and variations.)

{{cite web |author-first=Michael Frederic |author-last=Cowlishaw |author-link=Michael Frederic Cowlishaw |title=A Summary of Chen-Ho Decimal Data encoding |orig-date=June 2000 |date=2014 |publisher=IBM |url=http://speleotrove.com/decimal/chen-ho.html |access-date=2016-02-07 |url-status=live |archive-url=https://web.archive.org/web/20150924145419/http://speleotrove.com/decimal/chen-ho.html |archive-date=2015-09-24}}

{{cite journal |title=Densely Packed Decimal Encoding |author-first=Michael Frederic |author-last=Cowlishaw |author-link=Michael Frederic Cowlishaw |journal=IEE Proceedings - Computers and Digital Techniques |publisher=Institution of Electrical Engineers (IEE) |issn=1350-2387 |volume=149 |issue=3 |pages=102–104 |date=2002-08-07 |orig-date=May 2002 |doi=10.1049/ip-cdt:20020407 |location=London, UK |doi-broken-date=7 December 2024 |url=https://ieeexplore.ieee.org/document/1008829 |archive-url=https://web.archive.org/web/20170520044419/http://ieeexplore.ieee.org/document/1008829/ |url-status=dead |archive-date=20 May 2017 |access-date=2016-02-07}} (3 pages)

{{cite web |title=Binary coded decimal conversion apparatus |author-first1=Tien Chi |author-last1=Chen |author-link1=Tien Chi Chen |author-first2=Irving Tze |author-last2=Ho |author-link2=Irving T. Ho |publisher=International Business Machines Corporation (IBM) |location=San Jose, California, USA & Poughkeepsie, New York, USA |publication-place=Armonk, New York, USA |year=1974b |date=1974-10-15 |orig-date=1973-06-18 |id=US Patent US3842414A |type=Patent |url=https://patents.google.com/patent/US3842414A |access-date=2018-07-18}} (14 pages) [https://web.archive.org/web/20180718234732/https://patentimages.storage.googleapis.com/98/0e/62/0169530be1048f/US3842414.pdf][http://www.freepatentsonline.com/3842414.html] (NB. This expired patent is about the Chen–Ho algorithm.)

{{cite web |author-first=Michael Frederic |author-last=Cowlishaw |author-link=Michael Frederic Cowlishaw |publisher=IBM |title=A Summary of Densely Packed Decimal encoding |orig-date=2000-10-03 |date=2007-02-13 |url=http://speleotrove.com/decimal/DPDecimal.html |access-date=2016-02-07 |url-status=live |archive-url=https://web.archive.org/web/20150924145411/http://speleotrove.com/decimal/DPDecimal.html |archive-date=2015-09-24}}

{{cite web |title=Decimal to binary coder/decoder |author-first=Michael Frederic |author-last=Cowlishaw |author-link=Michael Frederic Cowlishaw |publisher=International Business Machines Corporation (IBM) |location=Coventry, UK |publication-place=Armonk, New York, USA |date=2003-02-25 |orig-date=2002-05-20, 2001-01-27 |id=US Patent US6525679B1 |type=Patent |url=https://patents.google.com/patent/US6525679B1 |access-date=2018-07-18 |postscript=none}} (6 pages) [https://web.archive.org/web/20180720022702/https://patentimages.storage.googleapis.com/b4/27/a6/f4ef138a335192/US6525679.pdf] and {{cite web |title=Decimal to binary coder/decoder |author-first=Michael Frederic |author-last=Cowlishaw |author-link=Michael Frederic Cowlishaw |publisher=International Business Machines Corporation (IBM) |location=Winchester, Hampshire, UK |publication-place=Armonk, New York, USA |date=2007-11-07 |orig-date=2004-01-14, 2002-08-14, 2001-09-24, 2001-01-27 |id=European Patent EP1231716A2 |type=Patent |url=https://patents.google.com/patent/EP1231716A2/en |access-date=2018-07-18}} (9 pages) [https://web.archive.org/web/20180719001335/https://patentimages.storage.googleapis.com/e1/0c/a1/69981125812742/EP1231716A2.pdf][https://web.archive.org/web/20180719054809/https://patentimages.storage.googleapis.com/ba/25/b6/b0ad365c086f5f/EP1231716B1.pdf][http://www.freepatentsonline.com/6525679.html] (NB. This patent about DPD also discusses the Chen–Ho algorithm.)

{{cite web |title=System for the compact storage of decimal numbers |author-first=Theodore M. |author-last=Hertz |location=Whittier, California, USA |publisher=North American Rockwell Corporation |date=1971-11-02 |orig-date=1969-12-15 |id=US Patent US3618047A |type=Patent |url=https://patents.google.com/patent/US3618047A |access-date=2018-07-18}} (8 pages) [https://web.archive.org/web/20180719211146/https://patentimages.storage.googleapis.com/34/cb/46/fd134e38804af5/US3618047.pdf][http://www.freepatentsonline.com/3618047.html] (NB. This expired patent discusses a coding system very similar to Chen-Ho, also cited as prior art in the {{citeref|Chen|Ho|1974b|Chen–Ho patent|style=plain}}.)

{{cite web |title=Chen-Ho Encoding and Densely Packed Decimal |author-first=John J. G. |author-last=Savard |date=2018 |orig-date=2007 |work=quadibloc |url=http://www.quadibloc.com/comp/cp020301.htm |access-date=2018-07-16 |url-status=live |archive-url=https://web.archive.org/web/20180703002320/http://www.quadibloc.com/comp/cp020301.htm |archive-date=2018-07-03}}

{{cite book |title=7070/7074 Compatibility Feature for IBM System/370 Models 165, 165 II, and 168 |author= |publisher=IBM |id=GA22-6958-1 (File No. 5/370-13) |edition=2 |date=June 1973 |orig-date=1970 |url=http://www.bitsavers.org/pdf/ibm/370/compatibility_feature/GA22-6958-1_707x_Compatibility_Feature_for_IBM-370_165_168.pdf |access-date=2018-07-21 |url-status=live |archive-url=https://web.archive.org/web/20180722120344/http://www.bitsavers.org/pdf/ibm/370/compatibility_feature/GA22-6958-1_707x_Compatibility_Feature_for_IBM-370_165_168.pdf |archive-date=2018-07-22}} (31+5 pages)

{{cite journal |title=Applications of Redundant Number Representations to Decimal Arithmetic |author-first=Ron |author-last=Sacks-Davis |location=Department of Computer Science, Monash University, Clayton, Victoria, Australia |publisher=Wiley Heyden Ltd |date=1982-11-01 |orig-date=January 1982 |doi=10.1093/comjnl/25.4.471 |journal=The Computer Journal |volume=25 |number=4 |pages=471–477 |doi-access=free }} (7 pages)

}}

Further reading

  • {{cite web |title=Packed Decimal Encoding IEEE-754-2008 |author-first=Jo H. M. |author-last=Bonten |orig-date=2006-10-05 |date=2009-10-06 |location=Geldrop, Netherlands |url=http://home.kpn.nl/jhm.bonten/computers/bitsandbytes/wordsizes/ibmpde.htm#dense4 |access-date=2018-07-11 |url-status=live |archive-url=https://web.archive.org/web/20180711143550/http://home.kpn.nl/jhm.bonten/computers/bitsandbytes/wordsizes/ibmpde.htm#dense4 |archive-date=2018-07-11}}
  • {{cite web |title=Base-26 Armor |author-first=John J. G. |author-last=Savard |date=2018 |orig-date=2001 |work=quadibloc |url=http://www.quadibloc.com/crypto/mi060301.htm |access-date=2018-07-21 |url-status=live |archive-url=https://web.archive.org/web/20180721041840/http://www.quadibloc.com/crypto/mi060301.htm |archive-date=2018-07-21}}
  • {{cite web |title=Data compression/expansion and compressed data processing |author-first1=Russell G. |author-last1=Rinaldi |author-first2=Brian B. |author-last2=Moore |publisher=International Business Machines Corporation (IBM) |location=Poughkeepsie & New Paltz, New York, USA |publication-place=New York, USA |date=1967-03-21 |orig-date=1964-06-30 |id=US Patent US3310786A |type=Patent |url=https://patents.google.com/patent/US3310786A |access-date=2018-07-18 |postscript=none}} (60 pages) [https://web.archive.org/web/20180719213000/https://patentimages.storage.googleapis.com/98/65/5e/63a98aac4b5184/US3310786.pdf], {{cite web |title=Serial digital adder employing a compressed data format |author-first1=Russell G. |author-last1=Rinaldi |author-first2=Brian B. |author-last2=Moore |publisher=International Business Machines Corporation (IBM) |location=Poughkeepsie & New Paltz, New York, USA |publication-place=New York, USA |date=1969-05-20 |orig-date=1967-01-19, 1964-06-30 |id=US Patent US3445641A |type=Patent |url=https://patents.google.com/patent/US3445641A |access-date=2018-07-18 |postscript=none}} (40 pages) [https://web.archive.org/web/20180719214333/https://patentimages.storage.googleapis.com/f8/84/2b/227f22291c1846/US3445641.pdf] and {{cite web |title=Data compression/expansion and compressed data processing |author-first1=Russell G. |author-last1=Rinaldi |author-first2=Brian B. |author-last2=Moore |publisher=International Business Machines Corporation (IBM) |location=Poughkeepsie & New Paltz, New York, USA |publication-place=New York, USA |date=1969-03-11 |orig-date=1967-01-19, 1964-06-30 |id=US Patent US3432811A |type=Patent |url=https://patents.google.com/patent/US3432811A |access-date=2018-07-18}} (11 pages) [https://web.archive.org/web/20180719213355/https://patentimages.storage.googleapis.com/6c/e8/d7/c1d354d8c9b947/US3432811.pdf] (NB. Three expired patents cited in both, the {{citeref|Hertz|1971|Hertz|style=plain}} and {{citeref|Chen|Ho|1974b|Chen–Ho patent|style=plain}}s.)
  • {{cite journal |author-last1=Bender |author-first1=Richard R. |author-last2=Galage |author-first2=Dominick J. |title=Packing Mode Control |journal=IBM Technical Disclosure Bulletin |volume=4 |number=3 |date=August 1961 |pages=61–63}}
  • {{cite journal |author-last=Tilem |author-first=J. Y. |title=Data Packing and Unpacking Means |journal=IBM Technical Disclosure Bulletin |volume=5 |number=7 |date=December 1962 |pages=48–49}}
  • {{cite journal |author-last1=Lengyel |author-first1=E. J. |author-last2=McMahon |author-first2=R. F. |title=Direct Decimal to Binary Address Generator For Small Memories |journal=IBM Technical Disclosure Bulletin |volume=9 |number=10 |date=March 1967 |page=1347 |url=https://priorart.ip.com/IPCOM/000092875#text |access-date=2020-06-03}}

{{DEFAULTSORT:Chen-Ho encoding}}

Category:Binary arithmetic