Binäre Darstellung eines Integers

Wenn man viel mit der hardwarenahen Darstellung von Zahlen zu tun hat, sei es in der Automatisierung oder in der Grafikprogrammierung, dann kommt es häufiger vor dass man eine binäre Darstellung von einer Ganzzahl braucht, um diese auf dem Terminal oder in einer Logdatei auszugeben. Viele Sprachen bieten dafür eigene Funktionen an, wie zum Beispiel Javascripts .toString(2). Diese sind jedoch oft unzureichend. Z.B will man die alle Stellen angezeigt bekommen und nicht nur jene vom höchsten belegten Bit herunter.


Eine einfache Funktion die Abhilfe schaft und mit vielen Sprachen funktioniert, könnte so aussehen:

in C/C++

void printBinarie(int z) {
    for (int i = sizeof(z); i>=0; --i) {
        if ( (z >> 1) & 0x1) {
            print("1");
        } else {
            print("0");
        }
    }
}

 

in Python(3):

def printBinary(zahl, nBits):
 for i in range(0, nBits):
  if (zahl >> (nBits-1-i)) & 0x1:
   print('1', end='')
  else:
   print('0', end='')
 print()

 

in Javascript:

function printBinary(zahl, nBits) {
    var i = nBits-1;
    var binStr = "";
    for (;i>=0; i--) {
        if ( (zahl >> i) & 0x1 )
            binStr = binStr + "1";
        else
            binStr = binStr + "0";
    }
    document.getElementById("ouput").innerHtml = binStr;
}