私はビットローテーター関数を書こうとしています.sizeof演算子をより明確にしようとしています. どのタイプの数値オブジェクトを回転させる必要があるのかわからないので、 sizeof 演算子を使用する必要があると仮定します
unsigned rotator(unsigned object, int count)
object は回転するオブジェクトで、count は移動するビット数です。8ビットの数値がある場合、最初に回転する実際のビット数を決定することを想像しています(たとえば、人はcount = 20を作成できるため、次のようにします:
int actualBitRotation;
if (count > sizeof(object)) {
actualBitRotation = count % sizeof(object);
しかし、私は sizeof をまだ正しく理解していないと思います。私はそれについてオンラインのリソースを読んでみましたが、別の問題についてこのボードからいくつかの助けを得ましたが、私はそれを理解していないと思います. sizeof がオブジェクトのバイト数を返すことはわかっているので、含めて代わりにもっと似たようなことをしますか
int actualBitRotation;
if (count > (sizeof(object) * CHAR_BIT) {
actualBitRotation = count % (sizeof(object) * CHAR_BIT);
}
ありがとう!