• Добро пожаловать в Пиратскую Бухту! Чтобы получить полный доступ к форуму пройдите регистрацию!
  • Гость, стой!

    В бухте очень не любят флуд и сообщения без смысловой нагрузки!
    Чтобы не получить бан, изучи правила форума!

    Если хотите поблагодарить автора темы, или оценить реплику пользователя, для этого есть кнопки: "Like" и "Дать на чай".

 Как решить? Нужен код C++

Shp4k

Пират
Читатель
Регистрация
31.01.19
Сообщения
63
Онлайн
5д 4м
Сделки
0
Нарушения
0 / 2
Написать программу, которая позволит ввести два целых числа n и k и, используя битовые операции сделать в числе n циклическую перестановку нечетных бит на k бит влево, вывести результат. Циклическая перестановка нечетных бит числа 0111 0111 0011 1101 на один бит влево даст число 1101 1101 1011 0101

B c++ не шарю, от слова совсем.
 

ilya_nonogram

Незнакомец
Прохожий
Регистрация
23.10.19
Сообщения
2
Онлайн
0
Сделки
0
Нарушения
0 / 0
Написать программу, которая позволит ввести два целых числа n и k и, используя битовые операции сделать в числе n циклическую перестановку нечетных бит на k бит влево, вывести результат. Циклическая перестановка нечетных бит числа 0111 0111 0011 1101 на один бит влево даст число 1101 1101 1011 0101

B c++ не шарю, от слова совсем.
unsigned int left_shift(unsigned int n,unsigned int k) {
unsigned int i,bit;
for (i=0; i<k; i++) {
bit=n&0x8000?1:0;
n<<=1;
n|=bit;
}
return n;
}

int main () {
unsigned int n=0xF000,k=8;
printf ("\nData: %u dec (%04X hex)",n,n);
n=left_shift(n,k);
printf ("\nResult: %u dec (%04X hex)",n,n);
getchar();
return 0;
}
вроде так, но я не професионал может где и ошибка есть!
 

Shp4k

Пират
Читатель
Регистрация
31.01.19
Сообщения
63
Онлайн
5д 4м
Сделки
0
Нарушения
0 / 2
unsigned int left_shift(unsigned int n,unsigned int k) {
unsigned int i,bit;
for (i=0; i<k; i++) {
bit=n&0x8000?1:0;
n<<=1;
n|=bit;
}
return n;
}

int main () {
unsigned int n=0xF000,k=8;
printf ("\nData: %u dec (%04X hex)",n,n);
n=left_shift(n,k);
printf ("\nResult: %u dec (%04X hex)",n,n);
getchar();
return 0;
}
В этом коде вводится только число k
 

respect1987

Шкипер
Знаток
Регистрация
25.02.18
Сообщения
897
Онлайн
39д 0м
Сделки
0
Нарушения
0 / 3
Написать программу, которая позволит ввести два целых числа n и k и, используя битовые операции сделать в числе n циклическую перестановку нечетных бит на k бит влево, вывести результат. Циклическая перестановка нечетных бит числа 0111 0111 0011 1101 на один бит влево даст число 1101 1101 1011 0101

B c++ не шарю, от слова совсем.
А зачем оно тебе, если не шаришь вообще?))
 

respect1987

Шкипер
Знаток
Регистрация
25.02.18
Сообщения
897
Онлайн
39д 0м
Сделки
0
Нарушения
0 / 3
Сверху