Ich schaue mir einen C++ - Quellcode an, wo es eine einfache Berechnung gibt. Aber ohne Kenntnisse in C++ kann ich nicht ganz verstehen, wie es wirklich berechnet wird (mein Ziel ist es, die gleiche Berechnung unter Excel durchzuführen).Verwirrt mit C++ "einfache" Berechnung mit Zeichen &
uint64_t fpo = (((ui>>32) << 24) | (ui & 0xffffff)) + 0x123e00;
PrintAndLog("ui result : %lld [0x%llX]", ui, ui);
In meinem Fall ui ist 0x0F007057B9 und das Ergebnis ist 0xF8295B9
Wenn ich den Windows-Rechner nehmen, ich (in Hex-Modus)
(0x0F007057B9 AND 0xffffff) + 0x123e00
Ich erhalte die gleiche Ergebnis (erwartet für die erste 0xF)
Ich habe irgendwo gelesen, dass AND 1 zurückgibt, wenn beide Bits des gleichen "wiegen" sind 1 Also wenn ich ui AN nehme D 0xFFFFFF zu Binary konvertiert:
0x0F007057B9 0000111100000000011100000101011110111001
0xffffff 111111111111111111111111
-------------------------------------------------------
0000111100000000011100000101011110111001
Welche jede Änderung macht ...
Bin ich völlig falschen Weg ?? Entschuldigung für mein schlechtes Englisch, ich komme aus Südkorea. Vielen Dank für Ihre Hilfe {^^;
Was die Art der 'ist ui' –
ui im Code zuvor definiert als: void print88x (uint32_t hi, uint64_t) –
Eine andere Möglichkeit, die gleiche Sache zu schreiben wäre 'ui/0x100000000 * 0x1000000 + (ui% 0x1000000) + 0x123e00' –