Uczymy się wykorzystywać console.table w JS. Zwracamy uwagę, że nieważne ile nam się wydaje, że wiemy, jest jeszcze sporo do odkrycia.

Ok, spróbujemy napisać kod, który pokazuje tabelę ASCII:

let asciiTable = {};

for(let i = 32; i <=126; i++){
    asciiTable[i] = String.fromCharCode(i);
}

console.table(asciiTable);

Indeksami są numery, wartości to znaki. Ok, coś lepszego:

let asciiTable = {};

for(let i = 32; i <=126; i++){
    asciiTable[i] = {
        dec: i,
        bin: i.toString(2),
        oct: i.toString(8),
        hex: i.toString(16),
        char: String.fromCharCode(i)
    }
}

console.table(asciiTable);

Mamy klucze, pod którymi są obiekty z parami klucz-wartość. Czyli, klucz to indeks tabeli. Będący pod tym kluczem obiekt zawiera klucze-wartości czyli nazwy kolumn i wartości tych kolumn.

Krótko mówiąc pod kluczem znajduje się taki obiekt:

console.table({
     val: 1111,
     8: 1,
     4: 1,
     2: 1,
     1: 1
    }
    );

I tu mamy nazwy tabel i wartości. Możemy napisać funkcję, która wyświetla liczbę binarną:

function displayBinary(binArr){
    let obj = {
        val: binArr.join("")
    };

    let pos = 1;

    while(binArr.length){
        obj[pos] = binArr.pop();
        pos = pos << 1;
    }

    console.table(obj);

}

displayBinary([1,1,0,1]);

Mamy tam wypisaną liczbę w dwójkowym (pod val) oraz rozpisane jej pozycje, czyli w naszym przypadku 1 – 1, 2 -0, 4 -1, 8 – 1.

Niestety to musi być z góry na dół a jak już postawimy to inaczej, to i tak będzie zaczynać się lewo do prawej (a binarne czytamy z prawej do lewej). Czyli idealnego rozwiązania do prezentacji liczb dwójkowych nie ma, ale to i tak dużo.