Я пытаюсь написать небольшую функцию ротатора, и я пытаюсь получить больше разъяснений относительно оператора sizeof. Так как я не знаю, какой тип числового объекта мне нужно вращать, я предполагаю, что мне нужно использовать оператор sizeof для
unsigned rotator(unsigned object, int count)
это прототип функции, где объект - это объект, который нужно повернуть, а count - это количество битов, которые необходимо переместить. Я представляю себе, что если бы у меня было 8-битное число, я сначала определил бы фактическое число вращаемых битов (поскольку человек может, например, сделать число = 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);
}
Спасибо!