JSFiddle - React, Tailwind, and code Playground

by oysteinmoseng

JavaScript

console.clear();

function varInt(n) {
	const buf = [];

	return buf;
}


function b(n) {
	var buffer = n & 0x7F;
    while (n >>= 7) {
        buffer <<= 8;
        buffer |= (n & 0x7F) | 0x80;
    }
    var res = [];
    while (true) {
        res.push(buffer & 0xff);
        if (buffer & 0x80) {
        	buffer >>= 8;
        }
        else { break; }
    }
    return res;
}


const v = (n, k) => {
	const res = b(n).map(x => x.toString(16)).join(',');
	console.log(n + ' = ' + k, res === k ? '-- YES --' : 'no (' + res + ')');
}

v(0x00, '0')
v(0x40, '40')
v(0x7F, '7f')
v(0x80, '81,0')
v(0x2000, 'c0,0')
v(0x3FFF, 'ff,7f')
v(0x4000, '81,80,0')
v(0x100000, 'c0,80,0')
v(0x1FFFFF, 'ff,ff,7f')
v(0x200000, '81,80,80,0')
v(0x8000000, 'c0,80,80,0')
v(0xFFFFFFF, 'ff,ff,ff,7f')