let text2 = "";

let data2 = [
    [0, 0],
    [0, 1],
    [1, 0],
    [1, 1],
];

text2 += "AND\n";
for (let i = 0; i < data2.length; i++) {
    let el1 = data2[i][0];
    let el2 = data2[i][1];

    text2 += el1 + " & " + el2 + " = ";
    text2 += (el1 & el2).toString();
    text2 += "\n";
}
text2 += "OR\n";
for (let i = 0; i < data2.length; i++) {
    let el1 = data2[i][0];
    let el2 = data2[i][1];

    text2 += el1 + " | " + el2 + " = ";
    text2 += (el1 | el2).toString();
    text2 += "\n";
}
text2 += "XOR\n";
for (let i = 0; i < data2.length; i++) {
    let el1 = data2[i][0];
    let el2 = data2[i][1];

    text2 += el1 + " ^ " + el2 + " = ";
    text2 += (el1 ^ el2).toString();
    text2 += "\n";
}
let data3 = [1,0]
text2 += "NOT\n";
for (let i = 0; i < data3.length; i++) {
    text2 += "~" + data3[i] + "=" + ~data3[i] + "\n"
}

console.log(text2);
AND
0 & 0 = 0
0 & 1 = 0
1 & 0 = 0
1 & 1 = 1
OR
0 | 0 = 0
0 | 1 = 1
1 | 0 = 1
1 | 1 = 1
XOR
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0
NOT
~1=-2
~0=-1