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

Сдвиг влево на один бит - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить является ли сумма элементов строк равной сумме элементов столбцов http://www.cyberforum.ru/cpp-beginners/thread1162143.html
Статическая память. Двумерный массив. Дан массив целых чисел. Определить является ли сумма элементов строк равной сумме элементов столбцов.
C++ Поиск всех чисел в строке, Регулярные выражения, CString Здравствуйте Уважаемые Дамы и господа, Подскажите пожалуйста как найти все числа в строке CString и перевести их в массив. Сейчас сделано вот так , CString str = "-kk-011; for(int a = 1;i<123; i--) 0xa11 wkjfl;sdk -11; "; z = str.FindOneOf(L"01234567890"); swscanf_s(str, L"%i", &a); Получается довольно неплохо, ищет все положительные числа, восьмеричные, шестнадцатеричные. Но я не... http://www.cyberforum.ru/cpp-beginners/thread1162136.html
C++ Удалить из списка s все элементы больше k
Функция void odn(iter *, iter *); выполняет "Из списков s1 и s2 удалить все элементы с одинаковым содержимым.". Помоги сделать так что бы она выполняла следующее "Удалить из списка s все элементы с значением содержимого, превышающим заданное число k." # include<iostream> using namespace std; class spisok { private: int x; spisok *prev; spisok *fr; public:
Шифрование XOR не кодирует бинарные данные C++
Текст кодирует/декодирует нормально.Бинарные файлы НЕТ. char tst="fnfdnbdlfkbpfdgkgfdm"; wchar_t in=L"F:\\test\\1.exe"; wchar_t out=L"F:\\test\\2.exe"; void XOR_Crypt(char *out, char *in, long InLen, char *pass, long PassLen) { for (long x=0; x<InLen; ++x) { out += (char)(in^pass);
C++ Написать программу с использованием структуры "Студент" http://www.cyberforum.ru/cpp-beginners/thread1162080.html
Для получения места в общежитии формируется список студентов, который включает ФИО студента, группу, средний балл, доход на члена семьи. Общежитие в первую очередь предоставляется тем, у кого доход на члена семьи меньше двух минимальных зарплат, затем остальным в порядке уменьшения среднего балла. Вывести список очередности ...
C++ Написать программу для вычисления факториала Помогите! заранее спасибо! подробнее

Показать сообщение отдельно
TrueBit
 Аватар для TrueBit
95 / 95 / 12
Регистрация: 19.11.2012
Сообщений: 195
29.04.2014, 23:17     Сдвиг влево на один бит
Цитата Сообщение от Sacha080895 Посмотреть сообщение
что значит это "str[1]&0x80000000"

В компьютере информация хранится в виде набора битов(по мнению программиста, но это уже другая тема), то есть в виде нулей и единиц(двоичная система счисления). 0x означает, что далее идет число в 16-ричной системе счисления. "&" означает побитовое "и" ( конъюнкция ).

str[1] & 0x80000000 делает побитовое "и" для этих двух чисел

0x80000000 = 2147483648 в десятичной = 1000 0000 0000 0000 0000 0000 0000 0000 в двоичной
если например str[1] это число 1111 1111 1111 1111 1111 1111 1111 1111

то в результате получим число
1111 1111 1111 1111 1111 1111 1111 1111 &
1000 0000 0000 0000 0000 0000 0000 0000
=
1000 0000 0000 0000 0000 0000 0000 0000

то есть результат побитового "и" только тогда 1, когда оба разряда 1, проще говоря число 0x80000000 обнуляет все разряды, кроме самого старшего(31го, нумерация с нуля, всего 32 разряда в 4 байтовом целом, 4 байт = 32 бит)

Если Windows, можете открыть калькулятор Вид-программист(Alt + 3). Там наглядно можете смотреть биты и менять системы счисления 2-10-8-16
 
Текущее время: 23:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru