Skip to content

Instantly share code, notes, and snippets.

@Papouchcom
Forked from mathewmariani/binary.js
Created June 26, 2020 07:37
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 Papouchcom/a9c3b586875836560729f0c45b544329 to your computer and use it in GitHub Desktop.
Save Papouchcom/a9c3b586875836560729f0c45b544329 to your computer and use it in GitHub Desktop.
A quick look at signed and unsigned integers in JavaScript.
var UInt4 = function (value) {
return (value & 0xF);
};
var Int4 = function (value) {
var ref = UInt4(value);
return (ref > 0x7) ? ref - 0x10 : ref;
};
var UInt8 = function (value) {
return (value & 0xFF);
};
var Int8 = function (value) {
var ref = UInt8(value);
return (ref > 0x7F) ? ref - 0x100 : ref;
};
var UInt16 = function (value) {
return (value & 0xFFFF);
};
var Int16 = function (value) {
var ref = UInt16(value);
return (ref > 0x7FFF) ? ref - 0x10000 : ref;
};
console.log ("\n4-bit");
var value = 8;
console.log ("value:\t\t" + value);
console.log ("unsigned:\t" + UInt4(value));
console.log ("signed:\t\t" + Int4(value));
console.log ("\n8-bit");
var value = 128;
console.log ("value:\t\t" + value);
console.log ("unsigned:\t" + UInt8(value));
console.log ("signed:\t\t" + Int8(value));
console.log ("\n16-bit");
var value = 32798;
console.log ("value:\t\t" + value);
console.log ("unsigned:\t" + UInt16(value));
console.log ("signed:\t\t" + Int16(value));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment