1.0.1 • Published 2 years ago

extended-hamming-code v1.0.1

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

extended-hamming-code

extended hamming code allows you to encode and decode binary strings, it has not any dependencies.Works only with binary strings. For example '101010'.

extended means first index of code handle odd-even of all code.

It is UMD module. It means it capable of working in AMD, CommonJS-like, nodejs, browrser environments. For more information go to UMD.

usage

npm install extended-hamming-code -S
import ExtendHammingCode from 'extended-hamming-code';

const {
  encode,
  decode,
} = ExtendHammingCode.setConfig({
  pow: 4
})

Options

NameTypeDefaultDescription
powNumber4preset max size of encode size, you will get Math.pow(2, pow), Math.pow(2, pow) - pow - 1 hamming code's encode and decode

relation of 'pow' and size :

powsizeDescription
416, 11Maximum encoding 11 bit, Maximum return 16 bit
532, 26Maximum encoding 26 bit, Maximum return 32 bit
664, 57Maximum encoding 57 bit, Maximum return 64 bit
nMath.pow(2, n), Math.pow(2, n) - n - 1Maximum encoding Math.pow(2, n) - n - 1 bit, Maximum return Math.pow(2, n) bit

example

when we set 4 to pow,we will get 16, 11 hamming code's encode and decode methord.

in this case, maximum encode 11 bit. when encode too long like this case below. str will be splited as many parts,and be encoded for each of them. join each other and return.

import ExtendHammingCode from 'extended-hamming-code';

const {
  encode,
  decode,
} = ExtendHammingCode.setConfig({
  pow: 4
})

const str = '1010101010101010101010101010101010';
const encodeRes = encode(str);
const decodeRes = decode(encodeRes);
const {
  code,
  correct,
  originCode,
  decodeResult,
} = decodeRes;
console.log(`encode:${str}, `, encodeRes);
console.log(`decode:${encodeRes}, `, decodeRes);
console.log('is correct?', correct, code === str)

result of decode:

keytypeDescription
codeStringresult code of decode
correctBooleancorrect or not
originCodeStringinput data
decodeResultArrayall parts of decode data