Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kerzh
0 / 0 / 0
Регистрация: 18.03.2012
Сообщений: 30
#1

циклический сдвиг подскажите - C++

22.03.2012, 19:03. Просмотров 457. Ответов 1
Метки нет (Все метки)

Необходимо написать программу со следующей функциональностью:


2. Функции циклического сдвига влево и вправо на заданное число разрядов. Если число разрядов, на которые производится сдвиг, больше или равно 8, то берется остаток от деления на 8. В этих двух функциях циклический сдвиг должен быть реализован в виде ОДНОГО выражения C++ (без операторов циклов и прочих)

у меня есть такой алгоритм на сдвиг в право , но он не очень работает.

C++
1
2
3
4
5
6
7
unsigned char ToTheRight(unsigned char x)
{
    int n;
    x>>n;
    x<<(sizeof(x)*8 - n);
    return x = x>>n | x<<(sizeof(x)*8 - n); 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2012, 19:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос циклический сдвиг подскажите (C++):

Циклический сдвиг. - C++
Нужно написать вот такую прогу, где нужно сдвинуть число а на n бит влево.

циклический сдвиг - C++
написать программу на СИ (обычном ,НЕ Си++), используя символьные массивы : Если число отрицательных элементов масива А чётно,то...

Циклический сдвиг - C++
Здравствуйте помогите пожалуйста мне надо все нечетные строки матрицы сдвинуть циклически на К элементов влево. Знаю тут ужас но не...

Циклический сдвиг - C++
Ребята, в чем может быть проблема? Надо организовать ф-цию циклического сдвига вправо. ТО бишь x-&gt;y, y-&gt;z, z-&gt;x. Что я делаю не так? ...

Циклический сдвиг матрицы - C++
Всем доброго дня. Программа располагает двумерный массив в динамичной памяти и сдвигает его на Т элементов влево. вопрос вот в чем: Как...

Циклический сдвиг в матрице - C++
Всем добрый день! Необходима помощь. Задание такое: Дана матрица int matr. Используя функции, сдвинуть циклически каждый нечетный...

1
nxnx
Формучанин
362 / 293 / 16
Регистрация: 02.11.2010
Сообщений: 1,234
22.03.2012, 20:07 #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
static inline unsigned int ror(unsigned int val,unsigned char cnt)
{    
    asm ("and $7,%2\nror %2,%0\n":"=a"(val):"0"(val),"c"(cnt));
    return val; 
}
static char* _bin(unsigned int value)
{
    register int i;
    static char val[32+1];
    for (i=0;i<32;i++)
        val[31-i]=(value & 1<<i)?'1':'0';    
    return val[32]=0,val;
}
int main(void)
{
    unsigned int u=5,i;
    printf("\t%s\n",_bin(u));
    for (i=0;i<10;i++)
        printf("ror(%u):\t%s\n",i,_bin(ror(u,i)));
        
    
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.03.2012, 20:07
Привет! Вот еще темы с ответами:

Циклический сдвиг матрицы - C++
Есть динамическая матрица, и есть обычный сдвиг на N элементов на право. как сделать сдвиг по рисунку? #include &lt;stdlib.h&gt; #include...

Циклический сдвиг числа - C++
Здравствуйте, нужна помощь с циклическим сдвигом, данно: Число: 44225 Нужно произвести циклический сдвиг, то есть поставить...

Инвертирование и циклический сдвиг - C++
Задание: Если содержание принятого кода может быть представлено в виде 2 в степени n, то выполнить операцию инвертирования значимых бит с...

Циклический сдвиг массива - C++
Напишите программу, которая вводит с клавиатуры непустой массив целых чисел, циклический сдвигает элементы массива вправо на к позиции, и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru