"bitstring" verketten
-
Ja das ist schön aber gibts es das auch ohne static_cast?
Die Funktion von Swordfish hat ja funktioniert, aber die bytes die Raus kommen stimmen irgendwie nicht.
Muss man da evtl was wegshiften oder habe ich etwas übersehen?
-
@Hamstaaa sagte in "bitstring" verketten:
aber die bytes die Raus kommen stimmen irgendwie nicht.
Die stimmen.
https://www.mobilefish.com/services/big_number/big_number.php
-
habe ich auch grade mal eingegeben komisch, schmeißt der Taschenrechner
-6.148.914.691.236.517.206 raus bei 10101010... weil der signed rechnet und ich im code unsigned?!
-
-
Hey Swordfish.
dein Codeschnipsel tut seinen Dienst
Aber eine Frage hätte ich wohl noch....
Ich habe jetzt einen Binärwert aus deinem Programm. Und ich habe eine Maske (10101010)
x = 0b 0110 1101 (109)
x2 = 0Wie bekomme ich es jetzt hin, dass er mir, anhand der Maske den maskierten Inhalt aus "x" in "x2" schreibt?
mit einem normalen "&" komme ich da nicht weiter.also so:
x in = 0110 1101 maskex = 1010 1010 // x2 out = 0000 0110 (6)
-
@Caligulaminus sagte in "bitstring" verketten:
uint64_t shuffle(uint32_t a, uint32_t b) { uint64_t result = static_cast<uint64_t>(a) << 32 | b; result = (result & 0x00000000ffff0000) << 16 | (result >> 16) & 0x00000000ffff0000 | result & 0xffff00000000ffff; result = (result & 0x0000ff000000ff00) << 8 | (result >> 8) & 0x0000ff000000ff00 | result & 0xff0000ffff0000ff; result = (result & 0x00f000f000f000f0) << 4 | (result >> 4) & 0x00f000f000f000f0 | result & 0xf00ff00ff00ff00f; result = (result & 0x0c0c0c0c0c0c0c0c) << 2 | (result >> 2) & 0x0c0c0c0c0c0c0c0c | result & 0xc3c3c3c3c3c3c3c3; result = (result & 0x2222222222222222) << 1 | (result >> 1) & 0x2222222222222222 | result & 0x9999999999999999; return result; }
Deinen Code habe ich natürlich auch ausprobiert!
Leider ohne Erfolg. Erst gab es "suggest parentheses around arithmetic in operand of '|' [-Werror=parentheses]" Fehler (Er markiert dabei die "&" Operator) und als ich mehr Klammern gesetzt habe, kam nur wirres Zeug raus.
-
@Hamstaaa sagte in "bitstring" verketten:
Leider ohne Erfolg. Erst gab es "suggest parentheses around arithmetic in operand of '|' [-Werror=parentheses]" Fehler und als ich mehr Klammern gesetzt habe, kam nur wirres Zeug raus.
Das ist ja nur eine Warnung. Hast du es in dem Zustand nicht ausprobiert? Ich tippe mal, dass du danach die Klammern falsch gesetzt hast.
(Ich hab allerdings den Code nicht im Detail nachvollzogen, vielleicht ist er ja wirklich falsch.)
-
@Bashar sagte in "bitstring" verketten:
@Hamstaaa sagte in "bitstring" verketten:
Leider ohne Erfolg. Erst gab es "suggest parentheses around arithmetic in operand of '|' [-Werror=parentheses]" Fehler und als ich mehr Klammern gesetzt habe, kam nur wirres Zeug raus.
Das ist ja nur eine Warnung. Hast du es in dem Zustand nicht ausprobiert? Ich tippe mal, dass du danach die Klammern falsch gesetzt hast.
(Ich hab allerdings den Code nicht im Detail nachvollzogen, vielleicht ist er ja wirklich falsch.)
Hat es nicht seinen Grund wenn so eine Warnung kommt? Zumal die "Warnung" zum build abbruch führt?!
Eventuell kannst du den Code von Caligulaminus ja c++ entsprechend umgestalten
-
@Hamstaaa sagte in "bitstring" verketten:
Hat es nicht seinen Grund wenn so eine Warnung kommt?
Ja, und der Grund ist, dass man mit diesen Operatoren leicht Fehler machen kann, weil die Rangfolge nicht für jeden intuitiv ist. Jedenfalls bedeutet Warnung nicht automatisch Fehler.
Zumal die "Warnung" zum build abbruch führt?!
Normalerweise nicht. Du hast wohl eine Compileroption gesetzt, die diese Warnung zu einem Fehler umwandelt.
-
@Hamstaaa sagte in "bitstring" verketten:
Leider ohne Erfolg. Erst gab es "suggest parentheses ...
"suggest(ion)"
Setz doch deine Klammern wie Du lustg bist.
-
@Caligulaminus sagte in "bitstring" verketten:
@Hamstaaa sagte in "bitstring" verketten:
Leider ohne Erfolg. Erst gab es "suggest parentheses ...
"suggest(ion)"
Setz doch deine Klammern wie Du lustg bist.
Das verstehe ich jetzt nicht so ganz
aber eventuell kannst Du mir ja bei dem Problem von
https://www.c-plusplus.net/forum/topic/351031/bitstring-verketten/17
helfen? Die Sache mit der Maske