How do I perform an unsigned right shift (>>> in Java) in C/C++?

后端 未结 2 2032
攒了一身酷
攒了一身酷 2021-01-01 11:49

How do I perform an unsigned right shift (>>> in Java) in C/C++?

相关标签:
2条回答
  • 2021-01-01 12:01

    In C, to get an unsigned shift, you just do a shift on an unsigned type.

    unsigned int result = (unsigned int)valueToBeShifted >> shiftAmount;
    

    Note that there is no guarantee that >> on a signed type gives you a signed shift in C -- this is implementation defined behavior. Most common implementations produce a signed shift if the type is signed, however.

    0 讨论(0)
  • 2021-01-01 12:18

    >>> is unsigned right shift, so I would think that in C this would be the same as

    unsigned int foo;
    unsigned int bar = foo >> whatever;
    
    0 讨论(0)
提交回复
热议问题