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

задача на битовые операции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу, которая случайным образом выдаёт английские/русские слова http://www.cyberforum.ru/cpp-beginners/thread1022595.html
Написать программу, которая случайным образом выдаёт английские/русские слова из заранее созданного словаря(можно в файле), с целью написания пользователем перевода на русском/английском языке....
C++ Дано целое число n. Вычислить выражение 2*4*6*...*2n Дано целое число n. Вычислить выражение 2*4*6*...*2n. (задание выполнить с пред- и пост- условием) http://www.cyberforum.ru/cpp-beginners/thread1022593.html
IComparable C++
С++ только начал изучать Знаю, что в С# легко можно реализовать интерфейс IComparable для своего класса, чтобы потом не мучиться с сортировкой. Как в С++ сделать то же самое? На MSDN вроде бы...
C++ С++ упаковка и распаковка файлов Zlib или любой другой способ
Здравствуйте, возникла такая проблема, немогу упаковать файл и распаковать, пытаюсь использовать Zlib, http://www.zlib.net/manual.html читал вот тут, но всё равно хоть и прочитал ничего не...
C++ Что такое std::string() http://www.cyberforum.ru/cpp-beginners/thread1022578.html
И скал в гугле- там ничего понимаемого. Начну, что я вообще в символьных не шарю. Обьясните пожалуста, что это и что оно делает. Нашол String class Strings are objects that represent sequences...
C++ Присвоить целую переменную k, что равняется третей от конца цифр в записе целого позитивного числа x Вот задание, кому не трудно помогите сделать код. Присвоить целую переменную k, что равняется третей от конца цифр в записе целого позитивного числа x. подробнее

Показать сообщение отдельно
ПерС
428 / 354 / 119
Регистрация: 05.11.2013
Сообщений: 1,006
Записей в блоге: 6
Завершенные тесты: 1
29.11.2013, 09:22
Функция left_shift делает это для 16-битовых чисел
Сдвиг любой, т.е. k не обязано быть меньше 16
Ввод с клавы и проч. ерунду - самостоятельно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
 
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;
}
Тест:
Data: 61440 dec (F000 hex)
Result: 240 dec (00F0 hex)
хы, кстати, я написал просто циклический сдвиг бит влево без учета нечетности
но я и не понял не фига из примера, какие биты нечетные
нумерация как обычно справа налево с нуля?
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru