Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Разъясните работу оператора


Автор: AndreySol 5.12.2008, 08:26
Что за оператор ">>", объясните на русском языке для чего и как используется ?
В этом примере что он делает ?
Код

ULONG ulData = strtoul(string, NULL, 0);
BYTE Data[4];
Data[3] = (BYTE) ulData;
Data[2] = (BYTE) (ulData >> 8);
Data[1] = (BYTE) (ulData >> 16);
Data[0] = (BYTE) (ulData >> 24);

Автор: mrbrooks 5.12.2008, 08:47
Этот оператор относится к логическим поразрядным операциям.

<< - поразрядный сдвиг влево
>> - поразрядный сдвиг вправо

особенно наглядно наблюдать их действия в двоичной форме представления числа.
к примеру int a = 2; в двоичке это 10
a<<1; получим 4 - в двоичке это 100 - то есть 1 смещается на 1 разряд влево
с >> таже история только наоборот.

следовательно в своем примере ты сдвигаешь биты  вправо на 8, 16 и 24 разряда. 

Кстати сдивги целого числа на n разрядов на право - эквивалентен целочисленному делению на 2n, на лево - умножению на 2n

Автор: Earnest 5.12.2008, 10:12
Я бы сказала так: в массив дата помещаются байты двойного слова: в 3м элементе - младший, в 0м - старший.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)