#include <iostream>
#include <print>

// Variablen definieren und initialisieren
short shortVar = 10;
const char CFIX = 0x55;

// main() Funktion
int main()
{
    // CFIX als Binärzahl ausgeben
    std::print("{:#x} ist binaer ", CFIX);
    // Ausgabe Binärwert. Dazu wird das Bit n (n=7..0) ins
    // Bit 0 geschoben, alle Bits ausser dem Bit 0 ausmaskiert
    // und dann der Wert ausgegeben.
    std::cout << ((CFIX >> 7) & 0x01);
    std::cout << ((CFIX >> 6) & 0x01);
    std::cout << ((CFIX >> 5) & 0x01);
    std::cout << ((CFIX >> 4) & 0x01);
    std::cout << ((CFIX >> 3) & 0x01);
    std::cout << ((CFIX >> 2) & 0x01);
    std::cout << ((CFIX >> 1) & 0x01);
    std::cout << ((CFIX) & 0x01) << '\n';

    // Bilden des Komplements einer Zahl
    std::println("Das 1er Komplement von 10 ist {}", ~shortVar);
    // Bilden des 2er Komplements
    std::println("Und eins dazu addiert ergibt {}", ~shortVar + 1);
}
