<< оператор в C ++? - PullRequest
       30

<< оператор в C ++?

2 голосов
/ 27 апреля 2011

Я новичок в C ++, каково точное значение для << в приведенном ниже утверждении, спасибо.

if (Val & (0x0001 << 0))
{}
else
{}

Ответы [ 3 ]

6 голосов
/ 27 апреля 2011

Это операция сдвига влево.Если у вас есть:

a << b

, где a и b являются целочисленными типами (char, short, long и т. Д.), То биты в a сдвигаются влево b на места сзаполнение нулями справа.Другими словами, a умножается на 2^b.

Пример:

12 << 3

12 (decimal) = 00001100 (binary)

сдвиг влево на 3 позиции:

00001100 becomes 01100000 

, что составляет 96 (чтоэто 12 * 8 или 12 * 2^3)

1 голос
/ 27 апреля 2011

Это означает сдвиг 0x0001 число 0 бит влево.В этом конкретном случае он ничего не делает.

Например, если это было (0x0001 << 4), 0x0001 станет 0x0010.Каждая позиция, сдвинутая влево, похожа на умножение числа на 2.

0 голосов
/ 27 апреля 2011

Это оператор сдвига .

Но когда целые числа не задействованы, остерегайтесь базового перегруженного оператора .

...