Форум программистов, компьютерный форум CyberForum.ru

циклические сдвиги - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Передача параметра, выделенного в куче, в функцию http://www.cyberforum.ru/cpp-beginners/thread860225.html
Доброго времени суток. Возник такой вопрос. Пусть имеется некоторый класс, под объект которого выделяется память: SomeClass pClass = new SomeClass(); И есть функция, которая принимает этот объект в качестве аргумента, копирует его внутри себя и не редактирует его. Так вот, как более корректно передавать этот объект в функцию? SomeFunc (const SomeClass &_someClass) { SomeClass someClass =...
C++ Ввод симфола с клавиатуры Здравствуйте. Очень интересует вопрос как можно вводить символы с клавиатуры. Речь идёт о калькуляторе. Пример символов: +, -,*,\, (,) так , чтобы их распознавала программа. http://www.cyberforum.ru/cpp-beginners/thread860220.html
Работает не так как надо(классы) C++
Задача. Создать класс хранящий в себе инн. Проверить его на верность и вывести результат. class NIP { public: NIP(const char*); ~NIP(void); void setNIP(const char* N) {strcpy(eNIP,N);}
Действия с файлом C++
Товарищи, помоги пожалуйста. Дан файл f, компоненты которого являются действительными числами. Найти: а) наибольшее из значений компонент; б) наименьшее из значений компонент с четными номерами; в) наибольшее из значений модулей компонент с нечетными номерами; г) сумму наибольшего и наименьшего из значений компонент; д) разность первой и последней компонент файла.
C++ Составить программу вычисления суммы любого количества произвольных чисел http://www.cyberforum.ru/cpp-beginners/thread860148.html
Очень нужна помощь в написании простых программ в С++ Изучал паскаль,на последнем курсе перешли на С++, а времени изучать нет... Задачи следующие: 1) Составить программу вычисления суммы любого количества произвольных чисел. Заранее благодарен!
C++ Я не знаю как реализовать метод сортировки Вот в чем заключается моя задача Описание классов. Базовый класс "Строки": виртуальные функции вычисления длины и сортировки с выводом результата. Производный класс "Большие буквы": значение строки, конструктор с параметром, виртуальные функции вычисления длины и сортировка по возрастанию с выводом результата. Производный класс "Малые буквы": значение строки, конструктор с параметром,... подробнее

Показать сообщение отдельно
Croessmah
Модератор
Эксперт CЭксперт С++
12878 / 7264 / 810
Регистрация: 27.09.2012
Сообщений: 17,950
Записей в блоге: 2
Завершенные тесты: 1
10.05.2013, 03:38     циклические сдвиги
Цитата Сообщение от Why so seriouS Посмотреть сообщение
Как это реализовать с помощью операторов сдвига?
Значение старшего бита в переменную. Затем сдвиг всего числа влево и потом Number & <старший_бит>

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
25
26
27
28
29
30
31
#include <iostream>
#include <climits>
typedef unsigned short int USINT;
 
USINT RCyrShift(USINT number){
    int bits;
    for(bits=sizeof(number)*CHAR_BIT-1;bits>=0;--bits){
        if(number&(1<<bits))
            break;
    }
    if (bits<=0) return number;
    return (number>>1)|((number&1)<<bits);
}
USINT LCyrShift(USINT number){
    int bits;
    for(bits=sizeof(number)*CHAR_BIT-1;bits>=0;--bits){
        if(number&(1<<bits))
            break;
    }
    if (bits<=0) return number;
    USINT mask=number&(1<<bits);
    return ((number & ~mask)<<1)|(mask>>bits);
}
 
int main(){
    USINT number;
    std::cout<<"Number ->";
    std::cin>>number;
    std::cout<<"Left: "<<LCyrShift(number)<<std::endl;
    std::cout<<"Right: "<<RCyrShift(number)<<std::endl;
}
 
Текущее время: 04:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru