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

Для чего используются побитовые операции? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ циклы do while http://www.cyberforum.ru/cpp-beginners/thread724817.html
do { if (a>=b) a%=b; else b%=a; } while (a*b>0); объясните пожалуйста, что делает эта функция. заранее спасибо :)
C++ С++ задать сортировку по времени Есть задача : Описать структуру с именем TRAIN, содержащую следующие поля: название пункта назначения; номер поезда; время отправления. Написать программу, выполняющую следующие действия: • ввод с... http://www.cyberforum.ru/cpp-beginners/thread724806.html
Поменять значения переменных, используя условный оператор C++
Выполнить задания двумя способами: с использованием оператора if и с использованием условного оператора ?. Даны вещественные x1, x2, x3, x4 . Поменять значения переменных так, чтобы \chi 1 \geq...
C++ как это будет выглядеть на С++?
var x,p:real; i:byte; begin writeln('Vvedite x'); readln(x); p:=1;; i:=2; while i<=64 do begin p:=p*(x-i)/(x-i-1);
C++ Переделать код с Paskal на С/С++ http://www.cyberforum.ru/cpp-beginners/thread724787.html
Var s,s1,s2:string; i:byte; b:boolean; Begin write('Введите строку: ');readln(s); s:=s+' '; s1:=Copy(s,1,Pos(' ',s)-1); Delete(s,1,Pos(' ',s)); While Pos(' ',s)>0...
C++ C++ и класс set, требуется релизовать Привет всем! Ранее никогда не имел дела с контейнерными кламмами STL, возникла необходимость написать программу на С++, которая бы вела учет пассажиров на ж/д вокзале (лабораторная в институте).... подробнее

Показать сообщение отдельно
Kuzia domovenok
1951 / 1804 / 140
Регистрация: 25.03.2012
Сообщений: 6,245
Записей в блоге: 1
09.12.2012, 17:48
x^=x;//обнуление x
x|=(1<<bit); //установка бита bit в x
x=~x;// инверсия битов x

используются для хранения битовых флагов,
сжатия по алгоритму Хаффмана.
Отсечения регулярным окном по алгоритму Кируса-Бека
в микроконтроллерах так вообще повсеместно используются

Вообще для оптимизации по скорости любого алгоритма там где возможно применяются битовые операции.
Пример быстрое извлечение корня
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
unsigned short isqrt(unsigned long a) {
    unsigned long rem = 0;
    int root = 0;
    int i;
 
    for (i = 0; i < 16; i++) {
        root <<= 1;
        rem <<= 2;
        rem += a >> 30;
        a <<= 2;
 
        if (root < rem) {
            root++;
            rem -= root;
            root++;
        }
    }
 
    return (unsigned short) (root >> 1);
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru