<< operator in C++?

前端 未结 3 608
遇见更好的自我
遇见更好的自我 2020-12-21 17:10

I am new to C++, what\'s the exact meaning for the << in statement below, Thanks.

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

相关标签:
3条回答
  • 2020-12-21 17:31

    It is a shift-left operation. If you have:

    a << b
    

    where a and b are integral types (char, short, long, etc.), then the bits in a are shifted left b places with zeroes filling in on the right. In other words, a is multiplied by 2^b.

    Example:

    12 << 3
    
    12 (decimal) = 00001100 (binary)
    

    shift left 3 places:

    00001100 becomes 01100000 
    

    which is 96 (which is 12 * 8 or 12 * 2^3)

    0 讨论(0)
  • 2020-12-21 17:33

    It means shift 0x0001 number 0 bits to the left. In that specific case, it does nothing.

    For example, if it was (0x0001 << 4), 0x0001 would become 0x0010. Each position shifted left is like multiplying the number by 2.

    0 讨论(0)
  • 2020-12-21 17:39

    That is a bit shift operator.

    But when integers aren't involved, beware of an underlying overloaded operator.

    0 讨论(0)
提交回复
热议问题