2
這只是我想要的樂趣,沒有真正的實際使用它。C如何滾動字節
比方說我進入0xDEADAAAA
我希望能值轉換成0xDDEAAAAA
含義4個最顯著字節偏移超過一個字節。 而第四個最重要的字節現在成爲第一個最重要的字節。
有點像第4個字節的循環移位。
現在我在做
value = value >> ((sizeof(unsigned int) * 8)/2);
這將所有字節偏移超過一個字節。 但是,我將如何做第四個最重要的字節到MSB的循環卷?
一個字符串沒有「最重要的字節」。如果這應該是一個整數:它似乎只有4個字節。目前尚不清楚你的意思。看[問],提供[mcve]。並且搜索「c運營商」,如果這不是太多問。 – Olaf
查看[Bit Twiddling Hacks](http://graphics.stanford.edu/~seander/bithacks.html)。您需要旋轉4個高位字節,同時保持低位字節不變(儘管AAAA的值位於低位字節,但很難發現保存字節值的處理不當的更改;使用「0xDEAD0123」或其他值而且,你似乎將字節與nybbles混合在一起;每個十六進制數字是一個nybble(又名半字節),看起來你想要處理4個最重要的nybbles,而不是字節 –
這是一個無符號整數而不是一個字符串,我只是用十六進制表示它的可讀性 – momonkey7