]> git.sesse.net Git - hamming/blobdiff - hamming.txt
Add an implementation of the (72,64) Hamming codes.
[hamming] / hamming.txt
index a3747e33cec09fca6a158f54a503460e8e485457..511ab5a1614c2f21d1bd4351adf12888f5f8b845 100644 (file)
@@ -49,7 +49,7 @@ p5                                    xx xx xx xx xx xx xx  xx xx xx xx xx xx xx
 Last bit is the parity of all the data bits _and_ the parity bits, which means it gets
 counted as follows (?):
 
-p6 xx xx  xx    xx xx    xx        xx xx xx    xx       xx  xx             xx xx
+p6 xx xx  xx    xx xx    xx        xx xx xx    xx       xx  xx       xx    xx xx
 
 Converted to bitmasks:
 
@@ -58,4 +58,39 @@ p2: 02 d9 b3 33
 p3: 01 c7 8f 0f
 p4: 00 3f 80 ff
 p5: 00 00 7f ff
-p6: 03 b4 e9 86
+p6: 03 b4 e9 96
+
+
+Finally, expansion to truncated (127,120) -> (71,64):
+
+   ab-c---d-------e---------------f-------------------------------g-------  
+p1 - x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
+p2  -x  xx  xx  xx  xx  xx  xx  xx  xx  xx  xx  xx  xx  xx  xx  xx  xx  xx
+p3    -xxx    xxxx    xxxx    xxxx    xxxx    xxxx    xxxx    xxxx    xxxx
+p4        -xxxxxxx        xxxxxxxx        xxxxxxxx        xxxxxxxx        
+p5                -xxxxxxxxxxxxxxx                xxxxxxxxxxxxxxxx
+p6                                -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+p7                                                                -xxxxxxx
+
+Reordering:
+   
+   ----------------------------------------------------------------  
+p1 xx xx x x xx x x x x x x xx x x x x x x x x x x x x x x xx x x x
+p2 x xx xx  xx xx  xx  xx  xx xx  xx  xx  xx  xx  xx  xx  xx xx  xx
+p3  xxx   xxxx   xxxx    xxxx   xxxx    xxxx    xxxx    xxxx   xxxx
+p4     xxxxxxx       xxxxxxxx       xxxxxxxx        xxxxxxxx       
+p5            xxxxxxxxxxxxxxx               xxxxxxxxxxxxxxxx
+p6                           xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+p7                                                          xxxxxxx
+
+Bit masks, with extra computed parity bit:
+
+p1: 0xDAB5556AAAAAAAD5
+p2: 0xB66CCCD9999999B3
+p3: 0x71E3C3C78787878F
+p4: 0x0FE03FC07F807F80
+p5: 0x001FFFC0007FFF80
+p6: 0x0000003FFFFFFF80
+p7: 0x000000000000007F
+p8: 0xED3A65B4CB4B34E9
+