これは私が楽しみにしたかったものです。Cロールバックする方法
セイは、例えば、私は私が1バイト以上の4つの最上位バイトのシフトを意味0xDDEAAAAA
に値を変換することができるようにしたい0xDEADAAAA
を入力してください。 そして、4番目の最上位バイトが最初の最上位バイトになります。
最初の4バイトのような種類の循環シフトがあります。今、私はこれは、1バイトの上にすべてのバイトをシフトします
value = value >> ((sizeof(unsigned int) * 8)/2);
をやっているために
。 しかし、4番目の重要なバイトの循環ロールをMSBにどのようにして入れますか?
文字列には「最上位バイト」がありません。そして、それが整数であると想定されている場合、それは4バイトしかないようです。あなたが何を意味するのかははっきりしない。 [ask]を参照し、[mcve]を提供してください。あまりにも多くの質問がない場合は、 "c演算子"を検索します。 – Olaf
[Bit Twiddling Hacks](http://graphics.stanford.edu/~seander/bithacks.html)を参照してください。下位バイトをそのままにして上位4バイトをローテートする必要があります(ただし、下位バイトに値AAAAを指定すると、バイト値を保持する誤った変更を検出することは難しく、 '0xDEAD0123'などを使用します)。また、あなたはバイトをnybblesと混在させているように見えます;各16進数字はナイブル(別名ニブル)であり、あなたは4つの最も重要なニブルを扱いたいと思われます。バイト。 –
これは文字列ではない符号なし整数です。私は読みやすさのために16進数で表現しています。 – momonkey7