Dies ist nur etwas, das ich zum Spaß machen wollte, keine echte praktische Verwendung davon.C wie man Bytes byte
Sagen Sie zum Beispiel gebe ich 0xDEADAAAA
Ich mag den Wert in 0xDDEAAAAA zu transformieren können
Bedeutung der 4 höchstwertigen Bytes über einen Byte verschieben. Und das 4. höchstwertige Byte wird jetzt zum ersten höchstwertigen Byte.
Wie eine zirkuläre Verschiebung der ersten 4 Bytes.
Vorerst Diese
value = value >> ((sizeof(unsigned int) * 8)/2);
tun werden alle Bytes über ein Byte verschiebe ich bin. Aber wie würde ich die zirkuläre Roll des 4. höchstwertigen Bytes in das MSB tun?
Ein String hat kein "höchstwertiges Byte". Und wenn das eine ganze Zahl sein soll: Es scheint nur 4 Bytes zu haben. Es ist nicht klar, was du meinst. Siehe [fragen], stellen Sie ein [mcve] bereit. Und suche nach "c-Operatoren", wenn das nicht zu gefragt ist. – Olaf
Siehe [Bit Twiddling Hacks] (http://graphics.stanford.edu/~seander/bithacks.html). Sie müssen 4 höherwertige Bytes rotieren lassen, während die Low-Einsen unverändert bleiben (obwohl mit dem Wert AAAA in den niederwertigen Bytes es schwierig sein wird, fehlerhafte Änderungen zu finden, die Bytewerte erhalten, verwenden Sie '0xDEAD0123' oder etwas anderes mit deutliche Bytes im niederwertigen Teil des Wertes, außerdem scheinen Sie Bytes mit Nybles zu verwechseln, jede Hexadezimalzahl ist ein Nybble (aka Nibble), und es scheint, dass Sie sich mit den 4 höchstwertigen Nybles beschäftigen wollen, nicht –
Es ist ein vorzeichenloser Integer, kein String, ich stelle ihn nur zur besseren Lesbarkeit in Hexadezimal dar. – momonkey7