Написать функцию rightrot (х, п), которая возвращает значение целого числа х поворачивается вправо на п операцийК & R 2-8 rightrotate (длина целого числа в битах)
могу Посмотрите, как я могу получить бит и поместить их в нужное положение, не требуя длины x (количество бит).
Я думаю неправильно или мне действительно нужно получить длину x каким-то образом? Если да, то как мне получить эту длину x?
Код, приведенный ниже, ошибочен, кстати, я просто поставил length_x для демонстрации моей проблемы.
Надеюсь, кто-то может указать мне в правильном направлении.
#include <stdio.h>
unsigned rightrot(unsigned x, int n);
main()
{
unsigned x = 75;
int p, n, y;
p = 5;
n = 3;
y = 45;
printf("%u\n",rightrot(x,n));
}
unsigned rightrot(unsigned x, int n)
{
oldn = (x & ~(~0 << n)) << length_x;
x = x >> n | oldn;
return x;
}
Вы уверены, что вы поняли [** цель упражнения? **] (http://stackoverflow.com/questions/6637578/kr-understanding-exercise-2-8-exactly -what-is-ask-here) – frsfnrrg