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