Bit-Operationen KAPITEL 11
|
|
|
- Busso Wolf
- vor 10 Jahren
- Abrufe
Transkript
1 KAPITEL 11 Bit-Operationen Sein oder nicht sein, das ist hier die Frage. Shakespeare über Boolesche Algebra In diesem Kapitel besprechen wir bitorientierte Operationen. Ein Bit ist die kleinste Informationseinheit; normalerweise wird sie durch die Werte 1 und 0 repräsentiert. (Weitere Repräsentationen sind an/aus (on/off), wahr/falsch (true/false) und ja/nein (yes/no).) Bitmanipulationen dienen der Maschinensteuerung auf niedrigster Ebene. Der Programmierer kann damit»unter die Motorhaube«des Rechners gelangen. Viele Applikationen werden nie irgendwelche Bit-Operationen benötigen. Aber in Lowlevel-Programmen wie Gerätetreibern oder Grafikprogrammen auf Pixelebene kommt man ohne Bit-Operationen nicht aus. Acht Bits bilden ein Byte, das in C++ durch den Datentyp char repräsentiert wird. Ein Byte könnte die folgende Bitfolge enthalten: Die Binärzahl kann auch als hexadezimale Zahl 0x64 geschrieben werden (C++ verwendet das Präfix»0x«, um hexadezimale Zahlen, also Zahlen zur Basis 16, anzugeben.) Die hexadezimale Notation ist bequem für die Repräsentation binärer Daten, weil jede hexadezimale Ziffer vier binäre Bits repräsentiert. Tabelle 11-1 gibt die Konvertierung von hexadezimal (hex) nach binär an. Die hexadezimale Zahl 0xAF repräsentiert also die binäre Zahl Tabelle 11-1: Hexadezimale und binäre Zahlen Hex Binär Hex Binär A B C D E F
2 Bit-Operatoren Bit- oder bitweise Operatoren ermöglichen es dem Programmierer, mit einzelnen Bits zu arbeiten. Beispielsweise enthält ein short int (auf den meisten Rechnern) 16 Bits. Die Bit- Operatoren behandeln alle diese als unabhängige Bits. Im Gegensatz dazu behandelt ein Additionsoperator die 16 Bits als eine einzige 16-Bit-Zahl. Mit Bit-Operatoren können Sie Bits setzen, löschen, abfragen und andere Operationen darauf durchführen. Die vorhandenen Bit-Operatoren sind in Tabelle 11-2 aufgeführt. Tabelle 11-2: Bit-Operatoren Operator Bedeutung & Bitweises UND Bitweises ODER ^ Bitweises exklusives ODER ~ Komplement << Nach links verschieben >> Nach rechts verschieben Diese Operatoren funktionieren auf allen Integer- und Zeichen-Datentypen. Der UND-Operator (&) Der UND-Operator vergleicht zwei Bits. Wenn beide 1 sind, ist auch das Ergebnis 1. Die Ergebnisse des UND-Operators sind in Tabelle 11-3 definiert. Tabelle 11-3: Der UND-Operator Bit1 Bit2 Bit1 & Bit Wenn zwei 8-Bit-Variablen (char-variablen) mit UND verknüpft werden, dann arbeitet der UND-Operator auf jedem Bit einzeln. Der folgende Programmausschnitt illustriert diese Operation. (In der darin enthaltenen Ausgabeanweisung teilt hex dem System mit, Zahlen in hexadezimalem Format auszugeben, und mit dec wird wieder zu Dezimalzahlen zurückgekehrt. Nähere Informationen dazu finden Sie in Kapitel 16.) int c1, c2; c1 = 0x45; c2 = 0x71; std::cout << "Ergebnis von " << hex << c1 << " & " << c2 << " = " << (c1 & c2) << dec << '\n'; 168 Kapitel 11: Bit-Operationen
3 Die Ausgabe dieses Programms lautet: Denn: Ergebnis von 45 & 71 = 41 Das bitweise UND (&) ähnelt dem logischen UND (&&). Beim logischen UND ist das Ergebnis true (1), wenn beide Operanden true (von null verschieden) sind. Beim bitweisen UND (&) ist das entsprechende Bit des Ergebnisses true, wenn die beiden korrespondierenden Bits in den Operanden ebenfalls true (1) sind. Das bitweise UND (&) arbeitet also auf jedem Bit einzeln, während das logische UND (&&) auf den ganzen Operanden arbeitet. & und && sind aber verschiedene Operatoren, wie Beispiel 11-1 zeigt. Beispiel 11-1: and/and.cpp #include <iostream> int main( ) { int i1, i2; // zwei zufällige Werte c1 = 0x45 binär & c2 = 0x71 binär = 0x41 binär i1 = 4; i2 = 2; // Werte setzen // Eine nette Möglichkeit, die Bedingung zu formulieren if ((i1!= 0) && (i2!= 0)) std::cout << "Beide sind nicht null #1\n"; // Eine verkürzte Schreibweise, um das Gleiche zu tun. // Korrekter C++-Code, aber lausiger Stil if (i1 && i2) std::cout << "Beide sind nicht null #2\n"; // Fehlerhafte Verwendung des Bit-Operators, Fehler if (i1 & i2) std::cout << "Beide sind nicht null #3\n"; return (0); Frage: Warum gibt Test #3 nicht Beide sind nicht null #3 aus? Der UND-Operator (&) 169
4 Antwort: Der Operator & ist ein bitweises UND. Das Ergebnis des bitweisen UND ist null: Das Ergebnis des bitweisen UND ist 0, und die Bedingung ist damit nicht erfüllt. Wenn der Programmierer die erste Form if ((i1!= 0) && (i2!= 0)) verwendet und aus Versehen & anstelle von && verwendet hätte, wie hier if ((i1!= 0) & (i2!= 0)) i1= & i2= dann hätte das Programm gleichwohl noch korrekt funktioniert: (i1!= 0) ist true (Ergebnis = 1) (i2!= 0) ist true (Ergebnis = 1) 1 bitweise UND 1 ist 1, also ist der Ausdruck wahr. Kurz, nachdem ich den in diesem Programm dargestellten Bug gefunden hatte, erzählte ich meinem Kollegen:»Jetzt verstehe ich wirklich den Unterschied zwischen UND und UND.«Und er verstand mich. Wie wir Sprache verstehen, hat mich schon immer fasziniert, und die Tatsache, dass ich einen solchen Satz sagen und trotzdem problemlos verstanden werden konnte, hat mich verblüfft. Sie können den bitweisen UND-Operator verwenden, um herauszufinden, ob eine Zahl gerade oder ungerade ist. In der Basis 2 ist die letzte Ziffer aller geraden Zahlen null und die letzte Ziffer aller ungeraden Zahlen eins. Die folgende Funktion verwendet das bitweise UND, um diese letzte Ziffer herauszupicken. Wenn diese null ist (eine gerade Zahl), dann ist das Ergebnis der Funktion true. inline int gerade(const int wert) { return ((wert & 1) == 0); Bitweises ODER ( ) Das inklusive ODER (auch einfach nur als ODER-Operator bezeichnet) vergleicht seine beiden Operanden. Wenn wenigstens eines der beiden Bits 1 ist, dann ist auch das Endergebnis 1. Tabelle 11-4 enthält die Wahrheitstabelle für den ODER-Operator. 170 Kapitel 11: Bit-Operationen
5 Tabelle 11-4: Der bitweise ODER-Operator Bit1 Bit2 Bit1 Bit Hier sehen Sie ein Beispiel dafür, wie sich ein bitweises ODER auf einem Byte auswirkt: i1=0x i2=0x x Das bitweise exklusive ODER (^) Das exklusive ODER (auch XOR oder EOR genannt) hat als Ergebnis 1, wenn genau einer der beiden Operanden 1 ist, aber nicht beide. Die Wahrheitstabelle für das exklusive ODER finden Sie in Tabelle Tabelle 11-5: Der bitweise exklusive ODER-Operator Bit1 Bit2 Bit1 ^ Bit Hier sehen Sie ein Beispiel des exklusivwn ODER auf einem Byte: i1=0x ^ i2=0x x Der Einerkomplement-Operator (NICHT) (~) Der NICHT-Operator (auch Invertierungsoperator oder Bit-Schalter genannt) ist ein unärer Operator, der das Inverse seines Operanden zurückgibt, wie Tabelle 11-6 zeigt. Tabelle 11-6: Der NICHT-Operator Bit ~Bit Der Einerkomplement-Operator (NICHT) (~) 171
6 Hier sehen Sie ein Beispiel des NICHT-Operators, angewendet auf ein Byte: Die Verschiebeoperatoren (<<, >>) Der linke Verschiebeoperator verschiebt die Daten um eine angegebene Anzahl von Bits nach links. Bits, die links herausfallen, verschwinden; rechts wird mit Nullen aufgefüllt. Die Verschiebung nach rechts macht das Gleiche in Gegenrichtung. Ein Beispiel: Das Verschieben nach links um eine Position (x << 1) ist das Gleiche wie eine Multiplikation mit 2 (x * 2). Das Verschieben um zwei Positionen nach links (x << 2) ist das Gleiche wie eine Multiplikation mit 4 (x * 4 oder x *2*2). Sie sehen schon das Muster: Das Verschieben um n Positionen entspricht der Multiplikation mit 2 n. Warum sollte man verschieben statt multiplizieren? Verschieben ist schneller als das Multiplizieren, daher ist i = j << 3; // multipliziere j mit 8 (2**3) schneller als: i = j * 8; Oder es wäre zumindest schneller, wenn die Compiler nicht ohnehin schlau genug wären, das»multiplizieren mit einer Zweierpotenz«in ein»verschieben«umzuwandeln. Viele schlaue Programmierer verwenden diesen Trick, um ihre Programme auf Kosten der Lesbarkeit schneller zu machen. Tun Sie das nicht. Der Compiler ist schlau genug, das von selbst zu tun. Wenn Sie eine Verschiebung einbauen, dann gewinnen Sie nichts, verlieren aber Lesbarkeit. Der linke Verschiebeoperator multipliziert, der rechte dividiert. Daher ist q = i >> 2; das Gleiche wie: q = i / 4; c= 0x ~c= 0xBA c=0x1c c << 1 c=0x c >> 2 c=0x Auch dieser schlaue Trick sollte in modernem Code nicht verwendet werden. Details zu Verschiebungen nach rechts Verschiebungen nach rechts sind besonders knifflig. Wenn eine Variable nach rechts verschoben wird, muss C++ den links frei werdenden Platz irgendwie auffüllen. Bei 172 Kapitel 11: Bit-Operationen
7 vorzeichenbehafteten Variablen verwendet C++ den Wert des Vorzeichenbits. Bei vorzeichenlosen Variablen verwendet C++ null. Tabelle 11-7 illustriert einige typische Verschiebungen nach rechts. Tabelle 11-7: Beispiele zum Verschieben nach rechts Vorzeichenbehaftetes Zeichen Vorzeichenbehaftetes Zeichen Vorzeichenloses Zeichen Ausdruck 9 >> 2 8 >> >> 2 Binärer Wert >> >> >> >> 2 Ergebnis?? ?? >> 2?? >> 2 Auffüllung Vorzeichenbit (0) Vorzeichenbit (1) null Endergebnis (binär) Endergebnis (short int) Bits setzen, löschen und abfragen Ein Zeichen enthält acht Bits. 1 Jedes von ihnen kann als separater Schalter (Flag) betrachtet werden. Mit Bitoperationen kann man acht einzelne Bitinformationen in ein einziges Byte packen. Nehmen Sie beispielsweise an, dass Sie ein maschinennahes Kommunikationsprogramm schreiben. Sie speichern die Zeichen zur späteren Verwendung in einem 8 kbyte großen Buffer. Zu jedem Zeichen speichern Sie auch eine Reihe von Status-Flags. Diese sind in Tabelle 11-8 aufgeführt. Tabelle 11-8: Werte für den Kommunikationsstatus Name ERROR FRAMING_ERR OR PARITY_ERROR CARRIER_LOST CHANNEL_DO WN Beschreibung Wahr, falls irgendein Fehler vorliegt. Ein Rahmenfehler ist bei diesem Zeichen aufgetreten. Das Zeichen hatte die falsche Parität. Das Carrier-Signal ging verloren. Stromausfall auf dem Kommunikationsgerät. Sie könnten jedes Flag in einer eigenen Zeichenvariablen speichern. Damit würden Sie aber pro gespeichertem Zeichen fünf weitere Bytes für den Zustand benötigen. Da kommt bei größeren Buffern einiges zusammen. Indem Sie stattdessen jedem Status-Flag ein Bit in einem Acht-Bit-Status-Zeichen zuweisen, reduzieren Sie den Speicherbedarf auf 1/5 des ursprünglichen Bedarfs. Sie können die Flags den Bitnummern gemäß Tabelle 11-9 zuweisen. 1 Dies gilt für alle Rechner, die ich heutzutage benutze, aber der C++-Standard schreibt nicht vor, wie viele Bits sich in einem Zeichen befinden müssen. Bits setzen, löschen und abfragen 173
8 Tabelle 11-9: Bit-Zuweisungen Bit Name 0 ERROR 1 FRAMING_E RROR 2 PARITY_ERR OR 3 CARRIER_LO ST 4 CHANNEL_D OWN Bits werden konventionsgemäß in der Reihenfolge nummeriert. Die Konstanten für die einzelnen Bits sind in Tabelle definiert. Tabelle 11-10: Bitwerte Bit Binärer Wert Hexkonstante x x x x x x x x01 Das Folgende ist eine Möglichkeit, die Konstanten für die Bits zu definieren, die den Kommunikationsstatus bilden: // Wahr, wenn irgendein Fehler aufgetreten ist const int ERROR = 0x01; // Ein Rahmenfehler ist bei diesem Zeichen aufgetreten const int FRAMING_ERROR = 0x02; // Das Zeichen hatte die falsche Parität const int PARITY_ERROR = 0x04; // Das Carrier-Signal ging verloren const int CARRIER_LOST = 0x08; // Stromausfall auf dem Kommunikationsgerät const int CHANNEL_DOWN = 0x10; Diese Methode, Bits zu definieren, ist etwas verwirrend. Können Sie (ohne in der Tabelle nachzuschauen) sagen, welche Bitnummer von der Konstante 0x10 repräsentiert wird? 174 Kapitel 11: Bit-Operationen
9 Tabelle zeigt, wie man den linken Verschiebeoperator zur Definition der Bits verwenden kann. Tabelle 11-11: Der linke Verschiebeoperator und die Bitdefinition C++-Repräsentation Basis 2-Äquivalent Ergebnis (Basis 2) Bitnummer 1 << << Bit 0 1 << << Bit 1 1 << << Bit 2 1 << << Bit 3 1 << << Bit 4 1 << << Bit 5 1 << << Bit 6 1 << << Bit 7 Es ist schwierig zu sagen, welches Bit von 0x10 repräsentiert wird, aber leicht zu verstehen, welches Bit mit 1 << 4 gemeint ist. Eine weitere Möglichkeit, die Konstanten zum Testen der Bits für den Kommunikationsstatus zu definieren, wäre: // Wahr, wenn irgendein Fehler aufgetreten ist const int ERROR = (1 << 0); // Ein Rahmenfehler ist bei diesem Zeichen aufgetreten const int FRAMING_ERROR = (1 << 1); // Das Zeichen hatte die falsche Parität const int PARITY_ERROR = (1 << 2); // Das Carrier-Signal ging verloren const int CARRIER_LOST = (1 << 3); // Stromausfall auf dem Kommunikationsgerät const int CHANNEL_DOWN = (1 << 4); Jetzt haben Sie die Bits definiert und können sie manipulieren. Zum Setzen eines Bits verwendet man den Operator. Ein Beispiel: char flags = 0; // Alle Flags beginnen mit 0 flags = CHANNEL_DOWN; // Kanal ging gerade verloren Um ein Bit abzufragen, verwenden Sie den Operator &, um die Bits»auszumaskieren«: if ((flags & ERROR)!= 0) std::cerr << "Fehler-Flag ist gesetzt\n"; else std::cerr << "Kein Fehler gemeldet\n"; Das Löschen ist ein klein wenig schwieriger. Angenommen, Sie wollen das Bit PARITY_ERROR löschen. Binär ist dieses Bit Sie brauchen eine Maske, bei der alle Bits setzen, löschen und abfragen 175
10 Bits außer diesem gesetzt sind ( ). Dies geschieht mit dem NICHT-Operator (~). Die Maske wird dann mit der Zahl, in der das Bit gelöscht werden soll, UND-verknüpft. PARITY_ERROR ~PARITY_ERROR flags flags & ~PARITY_ERROR In C++ sieht das so aus: flags &= ~PARITY_ERROR; // Wer interessiert sich für Parität? Frage 11-1: Im folgenden Programm funktioniert das Flag HIGH_SPEED, das Flag DIRECT_CONNECT aber nicht. Warum? #include <iostream> const int HIGH_SPEED = (1<<7); /* Modem läuft schnell */ const int DIRECT_CONNECT = (1<<8); // hart verdrahtete Verbindung char flags = 0; int main( ) { flags = HIGH_SPEED; flags = DIRECT_CONNECT; // bei null anfangen // Modem läuft schnell // weil wir direkt verdrahtet sind if ((flags & HIGH_SPEED)!= 0) std::cout <<"Höchstgeschwindigkeit\n"; if ((flags & DIRECT_CONNECT)!= 0) std::cout <<"Direkte Verbindung\n"; return (0); Bitmap-Grafiken In schwarzweißen Bitmap-Grafiken wird jedes Pixel im Bild durch ein einziges Bit im Speicher repräsentiert. Beispielsweise zeigt Abbildung 11-1 ein 14-mal-14-Bitmap-Bild, einmal so, wie es auf dem Bildschirm erscheint, und einmal vergrößert, so dass Sie die Bits sehen können. Angenommen, wir haben ein kleines grafisches Ausgabegerät, eine einfarbige Anzeige mit 16 mal 16 Pixeln. Wir wollen das Bit an der Position (4, 7) setzen. Die Bitmap für dieses Gerät ist in Abbildung 11-2 als Array von Bits zu sehen. 176 Kapitel 11: Bit-Operationen
11 Abbildung 11-1: Bitmap, tatsächliche Größe und vergrößert Abbildung 11-2: Array von Bits Aber wir haben hier ein Programm. Es gibt in C++ keinen Datentyp für Arrays von Bits. Am nähesten kommt noch ein Array von Bytes. Unser 16-mal-16-Bit-Array wird nun zu einem 2-mal-16-Byte-Array, wie es in Abbildung 11-3 zu sehen ist. Bitmap-Grafiken 177
12 Byte 0 Byte Abbildung 11-3: Array von Bytes Um das Pixel an Position (4, 7) zu setzen, müssen wir das vierte Bit von Byte (0, 7) setzen. Um dieses Bit zu setzen, würden wir die Anweisung bit_array[0][7] = (0x80 >> (4)); verwenden (die Konstante 0x80 ist das am weitesten links stehende Bit). Wir verwenden in diesem Fall die Notation (0x80 >> (4)), um das vierte Bit von links (eine Pixelposition) zu repräsentieren. Bisher haben wir (1 << 4) verwendet, um über das vierte Bit von rechts (eine Bitnummer) zu sprechen. Wir können den Vorgang des Setzens von Pixeln mit einer Funktion verallgemeinern, die das Bit (Pixel) an der Position (x, y) einschaltet. Wir müssen dazu zwei Werte berechnen: die Koordinate des Bytes und die Nummer des Bits in diesem Byte. Unsere Bitadresse ist (x, y). Bytes sind Gruppen von acht Bits, also ist unsere Byteadresse (x/8, y). Das Bit im Byte ist nicht so einfach. Wir wollen eine Maske erzeugen, die aus dem Bit besteht, das wir setzen wollen. Für das am weitesten links stehende Bit sollte das oder 0x80 sein. Das ist der Fall, wenn (x%8) == 0. Das nächste Bit ist oder (0x80 >> 1) und kommt vor, wenn (x%8) == 1. Um unsere Bitmaske zu generieren, verwenden wir daher den Ausdruck (0x80 >> (x%8)). Jetzt haben wir die Byteposition und die Bitmaske und müssen nur noch das Bit setzen. Die folgende Funktion setzt ein gegebenes Bit in einem Bitmap-Grafik-Array namens graphics: void inline set_bit(const int x,const int y) 178 Kapitel 11: Bit-Operationen
13 { assert((x >= 0) && (x < X_SIZE)); assert((y >= 0 )) && (y < y_size); graphics[x/8][y] = (0x80) >> (x%8)); Beispiel 11-2 zieht eine diagonale Linie über das Grafik-Array und gibt dann das Array auf der Konsole aus. Beispiel 11-2: graph/graph.cpp #include <iostream> #include <assert.h> const int X_SIZE = 40; // Größe des Arrays in X-Richtung const int Y_SIZE = 60; // Größe des Arrays in Y-Richtung /* * Wir verwenden X_SIZE/8, weil wir 8 Bits per Byte packen */ char graphics[x_size / 8][Y_SIZE]; // die Grafikdaten /******************************************************** * set_bit -- ein Bit im Grafik-Array setzen. * * * * Parameter * * x,y -- Position des Bits. * ********************************************************/ inline void set_bit(const int x,const int y) { assert((x >= 0) && (x < X_SIZE)); assert((y >= 0) && (y < Y_SIZE)); graphics[(x)/8][y] = static_cast<char>(0x80 >>((x)%8)); int main( ) { int loc; // aktuelle zu setzende Position void print_graphics( ); // die Daten ausgeben for (loc = 0; loc < X_SIZE; ++loc) set_bit(loc, loc); print_graphics( ); return (0); /******************************************************** * print_graphics -- das Grafik-Bit-Array als Folge von * * X und. ausgeben. * ********************************************************/ void print_graphics( ) { int x; // aktuelles x-byte int y; // aktuelle y-position int bit; // das Bit, das wir im aktuellen Byte abfragen Bitmap-Grafiken 179
14 Beispiel 11-2: graph/graph.cpp (Fortsetzung) for (y = 0; y < Y_SIZE; ++y) { // Schleife über alle Bytes im Array for (x = 0; x < X_SIZE / 8; ++x) { // Alle Bits verarbeiten for (bit = 0x80; bit > 0; bit = (bit >> 1)) { assert((x >= 0) && (x < (X_SIZE/8))); assert((y >= 0) && (y < Y_SIZE)); if ((graphics[x][y] & bit)!= 0) std::cout << 'X'; else std::cout << '.'; std::cout << '\n'; Das Programm definiert ein Bitmap-Grafik-Array: char graphics[x_size / 8][Y_SIZE]; // die Grafikdaten Wir verwenden die Konstante X_SIZE/8, weil wir horizontal X_SIZE Bits haben, was dann X_SIZE/8 Bytes ergibt. Die for-schleife for (loc = 0; loc < X_SIZE; ++loc) set_bit(loc, loc); zeichnet eine diagonale Linie über das Grafik-Array. Weil wir kein Bitmap-Grafik-Gerät haben, simulieren wir es mit der Funktion print_graphics. Die folgende Schleife gibt alle Zeilen aus: for (y = 0; y < Y_SIZE; ++y) {... Diese Schleife durchläuft alle Bytes in einer Zeile: for (x = 0; x < X_SIZE / 8; ++x) {... Die acht Bits in jedem Byte werden von folgender Schleife durchlaufen: for (bit = 0x80; bit > 0; bit = (bit >> 1)) Hier wird ein ungewöhnlicher Schleifenzähler verwendet. In dieser Schleife beginnt die Variable bit mit dem Bit 7 (dem am weitesten links stehenden Bit). In jedem Schleifendurchlauf verschiebt bit = (bit >> 1) das Bit um eine Position nach rechts. Wenn keine Bits mehr übrig sind, endet die Schleife. 180 Kapitel 11: Bit-Operationen
15 Der Schleifenzähler durchläuft die folgenden Werte: Binär Hex x x x x x x x x01 Schließlich befindet sich der folgende Code im Herzen aller dieser Schleifen: if ((graphics[x][y] & bit)!= 0) std::cout <<"X"; else std::cout << "."; Hier wird ein einzelnes Bit abgefragt und»x«ausgegeben, wenn das Bit gesetzt ist, beziehungsweise».«, wenn es nicht gesetzt ist. Frage 11-2: In Beispiel 11-3 funktioniert die erste Schleife, die zweite aber nicht. Warum? Beispiel 11-3: loop/loop.cpp #include <iostream> int main( ) { short int i; // Funktioniert for (i = 0x80; i!= 0; i = (i >> 1)) { std::cout << "i ist " << std::hex << i << std::dec << '\n'; signed char ch; // Funktioniert nicht for (ch = 0x80; ch!= 0; ch = (ch >> 1)) { std::cout << "ch ist " << std::hex << static_cast<int>(ch) << std::dec << '\n'; Bitmap-Grafiken 181
16 Beispiel 11-3: loop/loop.cpp (Fortsetzung) return (0); Programmieraufgaben Übung 11-1: Schreiben Sie einen Satz von Inline-Funktionen namens clear_bit und test_bit, die zur in Beispiel 11-2 definierten Operation set_bit passen. Schreiben Sie ein Hauptprogramm, das diese drei Funktionen testet. Übung 11-2: Schreiben Sie ein Programm, das ein 10-mal-10-Bitmap-Quadrat zeichnet. Übung 11-3: Ändern Sie Beispiel 11-1 dahingehend, dass eine weiße Linie auf schwarzem Hintergrund gezeichnet wird. Übung 11-4: Schreiben Sie ein Programm, das die Anzahl der gesetzten Bits in einem Integer-Wert zählt. Beispielsweise sind in der Zahl 5 (dezimal), die in binärer Notation ist, zwei Bits gesetzt. Übung 11-5: Schreiben Sie ein Programm, das einen 32-Bit-Integer-Wert (long int) erwartet und diesen in acht 4-Bit-Werte aufteilt (beachten Sie das Vorzeichenbit). Übung 11-6: Schreiben Sie ein Programm, das alle Bits in einer Zahl an das linke Ende verschiebt. Beispielsweise würde binär zu binär werden. Antworten zu den Fragen in diesem Kapitel Antwort 11-1: DIRECT_CONNECT wird durch den Ausdruck (1 << 8) als Bit Nummer 8 definiert; die acht Bits in einer Zeichenvariablen sind aber als nummeriert. Es gibt kein Bit mit der Nummer acht. Man kann dieses Problem lösen, indem man flags zu einem short int mit 16 Bits macht. Antwort 11-2: Das Problem besteht darin, dass ch ein Zeichen (8 Bits) ist. Der Wert 0x80, repräsentiert in 8 Bits, ist Das erste Bit, das Vorzeichenbit, ist gesetzt. Wenn diese Variable nach rechts verschoben wird, dann wird das Vorzeichenbit zum Füllen verwendet, so dass >> 1 gleich ist. Die Variable i funktioniert, obwohl sie vorzeichenbehaftet ist, weil sie 16 Bits breit ist. 0x80 in 16 Bits ist Beachten Sie, dass sich das Bit, das wir gesetzt haben, weit entfernt vom Vorzeichenbit befindet. Die Lösung zu diesem Problem besteht darin, ch als unsigned-variable zu verwenden. 182 Kapitel 11: Bit-Operationen
1 Vom Problem zum Programm
Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren
Zeichen bei Zahlen entschlüsseln
Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren
Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen
Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung
M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales
Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster
Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.
Professionelle Seminare im Bereich MS-Office
Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion
BITte ein BIT. Vom Bit zum Binärsystem. A Bit Of Magic. 1. Welche Werte kann ein Bit annehmen? 2. Wie viele Zustände können Sie mit 2 Bit darstellen?
BITte ein BIT Vom Bit zum Binärsystem A Bit Of Magic 1. Welche Werte kann ein Bit annehmen? 2. Wie viele Zustände können Sie mit 2 Bit darstellen? 3. Gegeben ist der Bitstrom: 10010110 Was repräsentiert
Zählen von Objekten einer bestimmten Klasse
Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --
Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
Anleitung über den Umgang mit Schildern
Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder
Primzahlen und RSA-Verschlüsselung
Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also
Das Leitbild vom Verein WIR
Das Leitbild vom Verein WIR Dieses Zeichen ist ein Gütesiegel. Texte mit diesem Gütesiegel sind leicht verständlich. Leicht Lesen gibt es in drei Stufen. B1: leicht verständlich A2: noch leichter verständlich
Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11
Kurzanleitung MEYTON Aufbau einer Internetverbindung 1 Von 11 Inhaltsverzeichnis Installation eines Internetzugangs...3 Ist mein Router bereits im MEYTON Netzwerk?...3 Start des YAST Programms...4 Auswahl
Binärdarstellung von Fliesskommazahlen
Binärdarstellung von Fliesskommazahlen 1. IEEE 754 Gleitkommazahl im Single-Format So sind in Gleitkommazahlen im IEEE 754-Standard aufgebaut: 31 30 24 23 0 S E E E E E E E E M M M M M M M M M M M M M
Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18
Kapitel 3 Datentypen und Variablen Seite 1 von 18 Datentypen - Einführung - Für jede Variable muss ein Datentyp festgelegt werden. - Hierdurch werden die Wertemenge und die verwendbaren Operatoren festgelegt.
geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen
geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Vollständigkeit halber aufgeführt. Gehen wir einmal davon aus, dass die von uns angenommenen 70% im Beispiel exakt berechnet sind. Was würde
Zwischenablage (Bilder, Texte,...)
Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen
10.1 Auflösung, Drucken und Scannen
Um einige technische Erläuterungen kommen wir auch in diesem Buch nicht herum. Für Ihre Bildergebnisse sind diese technischen Zusammenhänge sehr wichtig, nehmen Sie sich also etwas Zeit und lesen Sie dieses
Grundlagen der Informatik
Mag. Christian Gürtler Programmierung Grundlagen der Informatik 2011 Inhaltsverzeichnis I. Allgemeines 3 1. Zahlensysteme 4 1.1. ganze Zahlen...................................... 4 1.1.1. Umrechnungen.................................
Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert
Beamen in EEP Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert Zuerst musst du dir 2 Programme besorgen und zwar: Albert, das
Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.
Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.
Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:
VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt
Was man mit dem Computer alles machen kann
Was man mit dem Computer alles machen kann Wie komme ich ins Internet? Wenn Sie einen Computer zu Hause haben. Wenn Sie das Internet benutzen möchten, dann brauchen Sie ein eigenes Programm dafür. Dieses
Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer
Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer Allgemein: Das RSA-Verschlüsselungsverfahren ist ein häufig benutztes Verschlüsselungsverfahren, weil es sehr sicher ist. Es gehört zu der Klasse der
Zahlensysteme: Oktal- und Hexadezimalsystem
20 Brückenkurs Die gebräuchlichste Bitfolge umfasst 8 Bits, sie deckt also 2 8 =256 Möglichkeiten ab, und wird ein Byte genannt. Zwei Bytes, also 16 Bits, bilden ein Wort, und 4 Bytes, also 32 Bits, formen
Theoretische Informatik SS 04 Übung 1
Theoretische Informatik SS 04 Übung 1 Aufgabe 1 Es gibt verschiedene Möglichkeiten, eine natürliche Zahl n zu codieren. In der unären Codierung hat man nur ein Alphabet mit einem Zeichen - sagen wir die
OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland
OECD Programme for International Student Assessment Deutschland PISA 2000 Lösungen der Beispielaufgaben aus dem Mathematiktest Beispielaufgaben PISA-Hauptstudie 2000 Seite 3 UNIT ÄPFEL Beispielaufgaben
Jede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192.
Binäres und dezimales Zahlensystem Ziel In diesem ersten Schritt geht es darum, die grundlegende Umrechnung aus dem Dezimalsystem in das Binärsystem zu verstehen. Zusätzlich wird auch die andere Richtung,
Programmierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
Datensicherung. Beschreibung der Datensicherung
Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten
Übungen zu C++ Kapitel 1
Übungen zu C++ Kapitel 1 Aufgabe 1 Ergänze den Text. a) Die sechs logischen Einheiten eines Computers sind Eingabe-Einheit, Ausgabe-Einheit, RAM, ALU, CPU, Plattenspeicher. b) Die Programme, welche Hochsprachenprogramme
der Eingabe! Haben Sie das Ergebnis? Auf diesen schwarzen Punkt kommen wir noch zu sprechen.
Medizintechnik MATHCAD Kapitel. Einfache Rechnungen mit MATHCAD ohne Variablendefinition In diesem kleinen Kapitel wollen wir die ersten Schritte mit MATHCAD tun und folgende Aufgaben lösen: 8 a: 5 =?
Leichte-Sprache-Bilder
Leichte-Sprache-Bilder Reinhild Kassing Information - So geht es 1. Bilder gucken 2. anmelden für Probe-Bilder 3. Bilder bestellen 4. Rechnung bezahlen 5. Bilder runterladen 6. neue Bilder vorschlagen
1.4.12 Sin-Funktion vgl. Cos-Funktion
.4. Sgn-Funktion Informatik. Semester 36 36.4.2 Sin-Funktion vgl. Cos-Funktion Informatik. Semester 37 37 .4.3 Sqr-Funktion Informatik. Semester 38 38.4.4 Tan-Funktion Informatik. Semester 39 39 .5 Konstanten
Daten verarbeiten. Binärzahlen
Daten verarbeiten Binärzahlen In Digitalrechnern werden (fast) ausschließlich nur Binärzahlen eingesetzt. Das Binärzahlensystem ist das Stellenwertsystem mit der geringsten Anzahl von Ziffern. Es kennt
Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung
Anleitung zur Daten zur Datensicherung und Datenrücksicherung Datensicherung Es gibt drei Möglichkeiten der Datensicherung. Zwei davon sind in Ges eingebaut, die dritte ist eine manuelle Möglichkeit. In
Die Post hat eine Umfrage gemacht
Die Post hat eine Umfrage gemacht Bei der Umfrage ging es um das Thema: Inklusion Die Post hat Menschen mit Behinderung und Menschen ohne Behinderung gefragt: Wie zufrieden sie in dieser Gesellschaft sind.
Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 16
Kapitel 5 Arithmetische Operatoren Seite 1 von 16 Arithmetische Operatoren - Man unterscheidet unäre und binäre Operatoren. - Je nachdem, ob sie auf einen Operanden wirken, oder eine Verknüpfung zweier
Was meinen die Leute eigentlich mit: Grexit?
Was meinen die Leute eigentlich mit: Grexit? Grexit sind eigentlich 2 Wörter. 1. Griechenland 2. Exit Exit ist ein englisches Wort. Es bedeutet: Ausgang. Aber was haben diese 2 Sachen mit-einander zu tun?
Informationssysteme Gleitkommazahlen nach dem IEEE-Standard 754. Berechnung von Gleitkommazahlen aus Dezimalzahlen. HSLU T&A Informatik HS10
Informationssysteme Gleitkommazahlen nach dem IEEE-Standard 754 Berechnung von Gleitkommazahlen aus Dezimalzahlen Die wissenschaftliche Darstellung einer Zahl ist wie folgt definiert: n = f * 10 e. f ist
Kreativ visualisieren
Kreativ visualisieren Haben Sie schon einmal etwas von sogenannten»sich selbst erfüllenden Prophezeiungen«gehört? Damit ist gemeint, dass ein Ereignis mit hoher Wahrscheinlichkeit eintritt, wenn wir uns
Prüfung Computation, Programming
Prüfung Computation, Programming 1. Computation: Reguläre Ausdrücke [5 Punkte] Zusammenfassung reguläre Ausdrücke a Das Zeichen a. Ein beliebiges Zeichen [abc] Ein beliebiges Zeichen aus der Menge {a,
6.2 Scan-Konvertierung (Scan Conversion)
6.2 Scan-Konvertierung (Scan Conversion) Scan-Konvertierung ist die Rasterung von einfachen Objekten (Geraden, Kreisen, Kurven). Als Ausgabemedium dient meist der Bildschirm, der aus einem Pixelraster
Programmierung mit NQC: Kommunikation zwischen zwei RCX
Programmierung mit NQC: Kommunikation zwischen zwei RCX Teil : Grundlagen Martin Schmidt 7. Februar 24 Teil : Grundlagen Zahlensysteme : Binärsystem Ziffern: und Bit = binary digit (Binärziffer) Einfach
Dokumentation IBIS Monitor
Dokumentation IBIS Monitor Seite 1 von 16 11.01.06 Inhaltsverzeichnis 1. Allgemein 2. Installation und Programm starten 3. Programmkonfiguration 4. Aufzeichnung 4.1 Aufzeichnung mitschneiden 4.1.1 Inhalt
Der vorliegende Konverter unterstützt Sie bei der Konvertierung der Datensätze zu IBAN und BIC.
Anleitung Konverter Letzte Aktualisierung dieses Dokumentes: 14.11.2013 Der vorliegende Konverter unterstützt Sie bei der Konvertierung der Datensätze zu IBAN und BIC. Wichtiger Hinweis: Der Konverter
L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016
L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 Referentin: Dr. Kelly Neudorfer Universität Hohenheim Was wir jetzt besprechen werden ist eine Frage, mit denen viele
Theoretische Grundlagen der Informatik WS 09/10
Theoretische Grundlagen der Informatik WS 09/10 - Tutorium 6 - Michael Kirsten und Kai Wallisch Sitzung 13 02.02.2010 Inhaltsverzeichnis 1 Formeln zur Berechnung Aufgabe 1 2 Hamming-Distanz Aufgabe 2 3
Professionelle Seminare im Bereich MS-Office
Serienbrief aus Outlook heraus Schritt 1 Zuerst sollten Sie die Kontakte einblenden, damit Ihnen der Seriendruck zur Verfügung steht. Schritt 2 Danach wählen Sie bitte Gerhard Grünholz 1 Schritt 3 Es öffnet
Einführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
Lineare Gleichungssysteme
Lineare Gleichungssysteme 1 Zwei Gleichungen mit zwei Unbekannten Es kommt häufig vor, dass man nicht mit einer Variablen alleine auskommt, um ein Problem zu lösen. Das folgende Beispiel soll dies verdeutlichen
Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware
Datenübernahme von HKO 5.9 zur Advolux Kanzleisoftware Die Datenübernahme (DÜ) von HKO 5.9 zu Advolux Kanzleisoftware ist aufgrund der von Update zu Update veränderten Datenbank (DB)-Strukturen in HKO
Schritte 4. Lesetexte 13. Kosten für ein Girokonto vergleichen. 1. Was passt? Ordnen Sie zu.
Kosten für ein Girokonto vergleichen 1. Was passt? Ordnen Sie zu. a. die Buchung, -en b. die Auszahlung, -en c. der Dauerauftrag, - e d. die Überweisung, -en e. die Filiale, -n f. der Kontoauszug, - e
Was ich als Bürgermeister für Lübbecke tun möchte
Wahlprogramm in leichter Sprache Was ich als Bürgermeister für Lübbecke tun möchte Hallo, ich bin Dirk Raddy! Ich bin 47 Jahre alt. Ich wohne in Hüllhorst. Ich mache gerne Sport. Ich fahre gerne Ski. Ich
Simulation LIF5000. Abbildung 1
Simulation LIF5000 Abbildung 1 Zur Simulation von analogen Schaltungen verwende ich Ltspice/SwitcherCAD III. Dieses Programm ist sehr leistungsfähig und wenn man weis wie, dann kann man damit fast alles
! " # $ " % & Nicki Wruck worldwidewruck 08.02.2006
!"# $ " %& Nicki Wruck worldwidewruck 08.02.2006 Wer kennt die Problematik nicht? Die.pst Datei von Outlook wird unübersichtlich groß, das Starten und Beenden dauert immer länger. Hat man dann noch die.pst
Technische Informatik - Eine Einführung
Martin-Luther-Universität Halle-Wittenberg Fachbereich Mathematik und Informatik Lehrstuhl für Technische Informatik Prof. P. Molitor Ausgabe: 2005-02-21 Abgabe: 2005-02-21 Technische Informatik - Eine
ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele
ONLINE-AKADEMIE Ziele Wenn man von Menschen hört, die etwas Großartiges in ihrem Leben geleistet haben, erfahren wir oft, dass diese ihr Ziel über Jahre verfolgt haben oder diesen Wunsch schon bereits
5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu
Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten
Wir arbeiten mit Zufallszahlen
Abb. 1: Bei Kartenspielen müssen zu Beginn die Karten zufällig ausgeteilt werden. Wir arbeiten mit Zufallszahlen Jedesmal wenn ein neues Patience-Spiel gestartet wird, muss das Computerprogramm die Karten
Wirtschaftsinformatik I
Wirtschaftsinformatik I - Tutorium 6/ 7 (April 2010) Zusatzinformationen - Lösungsvorschläge Wirtschaftsinformatik I Tutorium Jochen Daum (4.Semester BWL) Universität Mannheim Rechtshinweis: Diese Präsentation
Gratis Excel SVERWEIS Funktions-Anleitung, Tutorial, ebook, PDF-E-Book
Gratis Excel SVERWEIS Funktions-Anleitung, Tutorial, ebook, PDF-E-Book Wir wollen wissen wieviel Umsatz Vertreter Müller im Juni gemacht hat? Dazu klicken wir irgendwo in ein Feld und geben ein: =SVERWEIS
Erstellen von x-y-diagrammen in OpenOffice.calc
Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei
icloud nicht neu, aber doch irgendwie anders
Kapitel 6 In diesem Kapitel zeigen wir Ihnen, welche Dienste die icloud beim Abgleich von Dateien und Informationen anbietet. Sie lernen icloud Drive kennen, den Fotostream, den icloud-schlüsselbund und
Wir basteln einen Jahreskalender mit MS Excel.
Wir basteln einen Jahreskalender mit MS Excel. In meinen Seminaren werde ich hin und wieder nach einem Excel-Jahreskalender gefragt. Im Internet findet man natürlich eine ganze Reihe mehr oder weniger
Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER
AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...
Der elektronische Stromzähler EDL 21. Bedienungsanleitung. Service
Der elektronische Stromzähler EDL 21 Bedienungsanleitung Service Mit dem elektronischen Stromzähler EDL 21* verfügen Sie über einen Zähler der neuen Generation. In dieser Broschüre erklären wir Ihnen,
Hinweise zum Übungsblatt Formatierung von Text:
Hinweise zum Übungsblatt Formatierung von Text: Zu den Aufgaben 1 und 2: Als erstes markieren wir den Text den wir verändern wollen. Dazu benutzen wir die linke Maustaste. Wir positionieren den Mauszeiger
Geld Verdienen im Internet leicht gemacht
Geld Verdienen im Internet leicht gemacht Hallo, Sie haben sich dieses E-book wahrscheinlich herunter geladen, weil Sie gerne lernen würden wie sie im Internet Geld verdienen können, oder? Denn genau das
Dame oder Tiger (Nach dem leider schon lange vergriffenen Buch von Raymond Smullyan)
Dame oder Tiger? 1 Dame oder Tiger (Nach dem leider schon lange vergriffenen Buch von Raymond Smullyan) Der König eines nicht näher bestimmten Landes hat zwölf Gefangene und möchte aus Platzmangel einige
Numerische Datentypen. Simon Weidmann
Numerische Datentypen Simon Weidmann 08.05.2014 1 Ganzzahlige Typen 1.1 Generelles Bei Datentypen muss man immer zwei elementare Eigenschaften unterscheiden: Zuerst gibt es den Wertebereich, zweitens die
Zahlensysteme Seite -1- Zahlensysteme
Zahlensysteme Seite -- Zahlensysteme Inhaltsverzeichnis Dezimalsystem... Binärsystem... Umrechnen Bin Dez...2 Umrechnung Dez Bin...2 Rechnen im Binärsystem Addition...3 Die negativen ganzen Zahlen im Binärsystem...4
Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen.
Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen. Klicken Sie auf Neu anlegen, um Ihre neue Angebotseite zu erstellen..
Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)
Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...
Reporting Services und SharePoint 2010 Teil 1
Reporting Services und SharePoint 2010 Teil 1 Abstract Bei der Verwendung der Reporting Services in Zusammenhang mit SharePoint 2010 stellt sich immer wieder die Frage bei der Installation: Wo und Wie?
Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1
Zahlenwinkel: Forscherkarte 1 alleine Tipp 1 Lege die Ziffern von 1 bis 9 so in den Zahlenwinkel, dass jeder Arm des Zahlenwinkels zusammengezählt das gleiche Ergebnis ergibt! Finde möglichst viele verschiedene
1. LPC - Lehmanns Programmier Contest - Lehmanns Logo
Aufgabe ist die Entwicklung einer vereinfachten Variante der beliebten Programmiersprache Logo. Die Aufgabe ist in drei Stufen zu erledigen, von der wir zunächst nur die erste Stufe bekannt geben. Die
lohmeyer White Paper Use Cases II UX+Prozessanalyse
White Paper Use Cases II Use Cases begleiten uns in der IT seit mehr als 15 Jahren. Nichtsdestotrotz ist es nicht so einfach, Use Cases einfach und verständlich zu schreiben. Dieses White Paper spricht
Fotos verkleinern mit Paint
Fotos verkleinern mit Paint Warum Paint? Sicher, es gibt eine Menge kostenloser guter Programme und Möglichkeiten im Netz zum Verkleinern von Fotos. Letztendlich ist es Geschmackssache, aber meine Erfahrungen
2. Negative Dualzahlen darstellen
2.1 Subtraktion von Dualzahlen 2.1.1 Direkte Subtraktion (Tafelrechnung) siehe ARCOR T0IF Nachteil dieser Methode: Diese Form der Subtraktion kann nur sehr schwer von einer Elektronik (CPU) durchgeführt
Guide DynDNS und Portforwarding
Guide DynDNS und Portforwarding Allgemein Um Geräte im lokalen Netzwerk von überall aus über das Internet erreichen zu können, kommt man um die Themen Dynamik DNS (kurz DynDNS) und Portweiterleitung(auch
Menü auf zwei Module verteilt (Joomla 3.4.0)
Menü auf zwei Module verteilt (Joomla 3.4.0) Oft wird bei Joomla das Menü in einem Modul dargestellt, wenn Sie aber z.b. ein horizontales Hauptmenü mit einem vertikalen Untermenü machen möchten, dann finden
Welche Gedanken wir uns für die Erstellung einer Präsentation machen, sollen Ihnen die folgende Folien zeigen.
Wir wollen mit Ihnen Ihren Auftritt gestalten Steil-Vorlage ist ein österreichisches Start-up mit mehr als zehn Jahren Erfahrung in IT und Kommunikation. Unser Ziel ist, dass jede einzelne Mitarbeiterin
Aufruf der Buchungssystems über die Homepage des TC-Bamberg
Aufruf der Buchungssystems über die Homepage des TC-Bamberg Das Online-Buchungssystem erreichen Sie einfach über die Homepage des TC-Bamberg (www.tennis-club-bamberg.de).über den Link (siehe Bild 1) gelangen
Repetitionsaufgaben Wurzelgleichungen
Repetitionsaufgaben Wurzelgleichungen Inhaltsverzeichnis A) Vorbemerkungen B) Lernziele C) Theorie mit Aufgaben D) Aufgaben mit Musterlösungen 4 A) Vorbemerkungen Bitte beachten Sie: Bei Wurzelgleichungen
So die eigene WEB-Seite von Pinterest verifizieren lassen!
So die eigene WEB-Seite von Pinterest verifizieren lassen! Quelle: www.rohinie.eu Die eigene Seite auf Pinterest verifizieren Es ist offiziell. Vielleicht haben auch Sie in den vergangenen Wochen die Informationen
Objektorientierte Programmierung für Anfänger am Beispiel PHP
Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten
Animationen erstellen
Animationen erstellen Unter Animation wird hier das Erscheinen oder Bewegen von Objekten Texten und Bildern verstanden Dazu wird zunächst eine neue Folie erstellt : Einfügen/ Neue Folie... Das Layout Aufzählung
Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.
In einer Website haben Seiten oft das gleiche Layout. Speziell beim Einsatz von Tabellen, in denen die Navigation auf der linken oder rechten Seite, oben oder unten eingesetzt wird. Diese Anteile der Website
Grundlagen der Informatik I Informationsdarstellung
Grundlagen der Informatik I Informationsdarstellung Einführung in die Informatik, Gumm, H.-P./Sommer, M. Themen der heutigen Veranstaltung. ASCIi Code 2. Zeichenketten 3. Logische Operationen 4. Zahlendarstellung
4. BEZIEHUNGEN ZWISCHEN TABELLEN
4. BEZIEHUNGEN ZWISCHEN TABELLEN Zwischen Tabellen können in MS Access Beziehungen bestehen. Durch das Verwenden von Tabellen, die zueinander in Beziehung stehen, können Sie Folgendes erreichen: Die Größe
Informatik Kurs Simulation. Hilfe für den Consideo Modeler
Hilfe für den Consideo Modeler Consideo stellt Schulen den Modeler kostenlos zur Verfügung. Wenden Sie sich an: http://consideo-modeler.de/ Der Modeler ist ein Werkzeug, das nicht für schulische Zwecke
Sowohl die Malstreifen als auch die Neperschen Streifen können auch in anderen Stellenwertsystemen verwendet werden.
Multiplikation Die schriftliche Multiplikation ist etwas schwieriger als die Addition. Zum einen setzt sie das kleine Einmaleins voraus, zum anderen sind die Überträge, die zu merken sind und häufig in
S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine
PhotoLine S/W mit PhotoLine Erstellt mit Version 16.11 Ich liebe Schwarzweiß-Bilder und schaue mir neidisch die Meisterwerke an, die andere Fotografen zustande bringen. Schon lange versuche ich, auch so
Was ist Sozial-Raum-Orientierung?
Was ist Sozial-Raum-Orientierung? Dr. Wolfgang Hinte Universität Duisburg-Essen Institut für Stadt-Entwicklung und Sozial-Raum-Orientierte Arbeit Das ist eine Zusammen-Fassung des Vortrages: Sozialräume
Übung 9 - Lösungsvorschlag
Universität Innsbruck - Institut für Informatik Datenbanken und Informationssysteme Prof. Günther Specht, Eva Zangerle Besprechung: 15.12.2008 Einführung in die Informatik Übung 9 - Lösungsvorschlag Aufgabe
PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach
- Projekt Personalverwaltung Erstellt von Inhaltsverzeichnis 1Planung...3 1.1Datenbankstruktur...3 1.2Klassenkonzept...4 2Realisierung...5 2.1Verwendete Techniken...5 2.2Vorgehensweise...5 2.3Probleme...6
Computerarithmetik ( )
Anhang A Computerarithmetik ( ) A.1 Zahlendarstellung im Rechner und Computerarithmetik Prinzipiell ist die Menge der im Computer darstellbaren Zahlen endlich. Wie groß diese Menge ist, hängt von der Rechnerarchitektur
Die neue Aufgabe von der Monitoring-Stelle. Das ist die Monitoring-Stelle:
Die neue Aufgabe von der Monitoring-Stelle Das ist die Monitoring-Stelle: Am Deutschen Institut für Menschen-Rechte in Berlin gibt es ein besonderes Büro. Dieses Büro heißt Monitoring-Stelle. Mo-ni-to-ring
