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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить является ли сумма элементов строк равной сумме элементов столбцов http://www.cyberforum.ru/cpp-beginners/thread1162143.html
Статическая память. Двумерный массив. Дан массив целых чисел. Определить является ли сумма элементов строк равной сумме элементов столбцов.
C++ Поиск всех чисел в строке, Регулярные выражения, CString Здравствуйте Уважаемые Дамы и господа, Подскажите пожалуйста как найти все числа в строке CString и перевести их в массив. Сейчас сделано вот так , CString str = "-kk-011; for(int a = 1;i<123;... http://www.cyberforum.ru/cpp-beginners/thread1162136.html
C++ Удалить из списка s все элементы больше k
Функция void odn(iter *, iter *); выполняет "Из списков s1 и s2 удалить все элементы с одинаковым содержимым.". Помоги сделать так что бы она выполняла следующее "Удалить из списка s все элементы с...
Шифрование 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...
C++ Написать программу с использованием структуры "Студент" http://www.cyberforum.ru/cpp-beginners/thread1162080.html
Для получения места в общежитии формируется список студентов, который включает ФИО студента, группу, средний балл, доход на члена семьи. Общежитие в первую очередь ...
C++ Написать программу для вычисления факториала Помогите! заранее спасибо! подробнее

Показать сообщение отдельно
TrueBit
96 / 96 / 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
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru