Hallo Platte,
In manchen Programmiersprachen, wie z.B. ursprünglich in BASIC, gab es keinen anderen Weg um einzelne Bits manipulieren zu können.Ich habe daher nun die Grundwerte 1, 2,4,8,16,32,64 und 128 auf eine Variable aufgeteilt, die immer nur diese Wertigkeit oder 0 hat.
C/C++ hat aber von Anfang an extra Mechanismen um einzelne Bits manipulieren zu können.
(1 << i) macht auch nichts anderes
1 << 0 = 1
1 << 1 = 2
1 << 2 = 4
C wurde ursprünglich entwickelt um ein Betriebssystem (Unix) schreiben zu können. Zu einem Betriebssystem gehören auch eine Menge Hardware-Treiber und folglich auch eine Menge Bits, welche bearbeitet werden müssen.
BASIC steht für "Beginner’s All-purpose Symbolic Instruction Code", was so viel bedeutet wie „symbolische Allzweck-Programmiersprache für Anfänger. War also nur für Anwender-Programme gedacht. Auf vielen kleineren Computern wurde BASIC auch als "Betriebssystem" eingesetzt.
Bis Auf Unix waren praktisch alle Betriebssysteme komplett in Assembler programmiert. Für eine neue CPU musste immer alles neu geschrieben werden. Unix bestand dann nur noch aus ein paar Prozent aus Assembler, der ganze Rest war in C geschrieben.
Einen anderen Weg ging, ein paar Jahre später, U.C.S.D.-Pascal. Dabei bastelte man sich eine theoretische CPU zusammen, welche dann auf einer konkreten CPU simuliert wurde. Den Assembler-Code für diese simulierte CPU nannte man P-Code (Pseudo-Code). Man musste dann immer nur den P-Code für den einfachen Interpreter für eine neue CPU neu in Assembler schreiben.
Java verwendet diese Technik heute noch, dort nennt man den P-Code Byte-Code.
MfG Peter(TOO)
Lesezeichen