JSFiddle - React, Tailwind, and code Playground
by subskybox
HTML
<div id='output' />
CSS
div {
font-family: "Courier New", Courier;
}
JavaScript
function createBinaryString (nMask) {
// nMask must be between -2147483648 and 2147483647
for (var nFlag = 0, nShifted = nMask, sMask = ""; nFlag < 32;
nFlag++, sMask += String(nShifted >>> 31), nShifted <<= 1);
return sMask;
}
function output (out) {
document.getElementById('output').innerHTML += "out: " + out + "<br />";
}
//The 4 bit is set for 100 and 300
output(createBinaryString(100));
output(createBinaryString(100<<29));
output(100<<-3);
output(" ");
output(createBinaryString(200));
output(createBinaryString(200<<29));
output(200<<-3);
output(" ");
output(createBinaryString(300));
output(createBinaryString(300<<29));
output(300<<-3);
output(" ");
output(createBinaryString(-3));
output(createBinaryString(0xFFFFFFFD));
output(0x7FFFFFFD%32);
output(0xFFFFFFFD%32);
output(300<<0xFFFFFFFD);
output(300<<29);
output(createBinaryString(-2147483648));
output(createBinaryString(1986735448));
output(createBinaryString(1986735448<<1));
output(1986735448<<1);