// hehe: inverts each char
const toD = (d: number | string) => '' + +!+d
/**
* @see https://www.mathworks.com/help/matlab/ref/int8.html
* @see https://stackoverflow.com/questions/8482309/converting-javascript-integer-to-byte-array-and-back
* @see https://stackoverflow.com/questions/9939760/how-do-i-convert-an-integer-to-binary-in-javascript
* @see https://stackoverflow.com/questions/10936600/javascript-decimal-to-binary-64-bit
*/
function fromNumberTo64BitBinary(int: number): number | string {
if (int >= 0) {
return int.toString(2).padStart(64, '0')
} else {
return (-int - 1)
.toString(2)
.replace(/[01]/g, toD)
.padStart(64, '1')
}
}
export { fromNumberTo64BitBinary }
export default fromNumberTo64BitBinary