Skip to content

Instantly share code, notes, and snippets.

@dested
Created November 23, 2016 00:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dested/c63257ba5e0a08856f722da901c35f66 to your computer and use it in GitHub Desktop.
Save dested/c63257ba5e0a08856f722da901c35f66 to your computer and use it in GitHub Desktop.
//actual inputs
var t0 = process.hrtime();
var m = new Uint8Array(30*60*60*5);
for (var c = 0; c < m.length; c++)m[c] = Math.random() * 32 | 0;
var mk = [];
var pad = "00000";
//inputs as bits
for (var j = 0; j < m.length; j++) {
var str = m[j].toString(2);
str = pad.substring(0, pad.length - str.length) + str;
var km = str.split('');
mk.push(km[0]);
mk.push(km[1]);
mk.push(km[2]);
mk.push(km[3]);
mk.push(km[4]);
}
var dl = [];
//bits as numbers
for (j = 0; j < mk.length; j += 8) {
var str = '';
for (c = 0; c < 8; c++) {
str += (mk[j + c]===undefined?"0":mk[j + c]);
}
dl.push(parseInt(str, 2))
}
console.log(dl.length,m.length)
var diff=process.hrtime(t0);
console.log('encode',(diff[0] * 1e9 + diff[1])/1000/1000);
var t0 = process.hrtime();
var md = [];
//numbers as bits
for (var c = 0; c < dl.length; c++) {
var long = dl[c];
for (var i = 7; i >= 0; i--) {
var bit = long & (1 << i) ? 1 : 0;
md.push(bit);
}
}
var fc = md;
var dc = [];
//bits as inputs
for (var c = 0; c <= fc.length; c += 5) {
var j = (fc[c]===undefined?"":fc[c]) + "" +( fc[c+1]===undefined?"":fc[c+1]) + "" + (fc[c+2]===undefined?"":fc[c+2]) + "" + (fc[c+3]===undefined?"":fc[c+3]) + "" + (fc[c+4]===undefined?"":fc[c+4]);
dc.push(parseInt(j, 2));;
}
for (var c = 0; c < m.length; c++) {
if(dc[c] != m[c])console.log('fail');
}
var diff=process.hrtime(t0);
console.log('deencode',(diff[0] * 1e9 + diff[1])/1000/1000);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment