bose chaudhuri hocquenghem encoder logic

encoder available via bitwise remainder operation.

encoder

define Number.prototype

1. declare length
const l=this.toBitLength()

2. declare remainder
let r=v<<=l

3. loop
for(let i=r.toBitLength();i>l-1;i--)

4. set remainder
if(1&r>>>i)r^=this<<i-l

5. return
return v|r