int bitweise addieren
-
Ist es möglich, an die Bits eines Ints die Bit eines anderen anzuhängen,
z.B. So:
Zahl1 = 255
Zahl2 = 125
Zahl1 = 11111111
Zahl2 = 01111101
Zahl1 + Zahl2 = 1111111101111101
Zahl1 + Zahl2 = 65405
?
-
kombiniere folgende c++ operatoren:
| & |= &= << >>mit integern in geigneter Weise

Achje vergessen:
^und nun sag mal warum
24^12nicht zum gewünschten Ergebnis führt
-
z.B. So?
#include <iostream> using namespace std; int main() { int R, G, RX, Out; R = 213; G = 154; RX = R << 8; Out = RX | G; cout << R << " + " << G << " = " << Out; cin >> Out; return 0; }
-
Funktioniert es denn?
-
glaub schon, Ausgabe ist 54682, sollte stimmen.
-
jonnybx schrieb:
glaub schon, Ausgabe ist 54682, sollte stimmen.
Genau. Ist auch richtig. Jedenfalls fast. Zwei Fallstricke die du übersehen hast sind:
a) negative Zahlen. Da müsstest du dir überlegen, was überhaupt passieren soll. Oder einfach ausschließen, indem du unsigned Typen benutzt
b) Was passiert wenn die Ausgangszahlen länger sind als 8 Bit? Diese Möglichkeit kannst du ebenfalls ausschließen, indem du die Ausgangszahlen auf (unsigned) char beschränkst, welches auf (fast) allen Systemen 8 Bit fasst.
-
Die ints habe ich jetzt zu unsigned ints umgewandelt, und für den Fall das die zahl größer ist als 8 bit (Vista 64) prüfe ich einfach, ob die zahl größer als 255 ist