'use strict'; // selected so (BASE - 1) * 0x100000000 + 0xffffffff is a safe integer var BASE = 1000000; function readInt8(buffer) { var high = buffer.readInt32BE(0); var low = buffer.readUInt32BE(4); var sign = ''; if (high < 0) { high = ~high + (low === 0); low = (~low + 1) >>> 0; sign = '-'; } var result = ''; var carry; var t; var digits; var pad; var l; var i; { carry = high % BASE; high = high / BASE >>> 0; t = 0x100000000 * carry + low; low = t / BASE >>> 0; digits = '' + (t - BASE * low); if (low === 0 && high === 0) { return sign + digits + result; } pad = ''; l = 6 - digits.length; for (i = 0; i < l; i++) { pad += '0'; } result = pad + digits + result; } { carry = high % BASE; high = high / BASE >>> 0; t = 0x100000000 * carry + low; low = t / BASE >>> 0; digits = '' + (t - BASE * low); if (low === 0 && high === 0) { return sign + digits + result; } pad = ''; l = 6 - digits.length; for (i = 0; i < l; i++) { pad += '0'; } result = pad + digits + result; } { carry = high % BASE; high = high / BASE >>> 0; t = 0x100000000 * carry + low; low = t / BASE >>> 0; digits = '' + (t - BASE * low); if (low === 0 && high === 0) { return sign + digits + result; } pad = ''; l = 6 - digits.length; for (i = 0; i < l; i++) { pad += '0'; } result = pad + digits + result; } { carry = high % BASE; t = 0x100000000 * carry + low; digits = '' + t % BASE; return sign + digits + result; } } module.exports = readInt8;