标签: c bit-manipulation bit bits
unsigned char c= 17512807u<<22>>22;
我希望这是359或0101100111,但我得到103或0001100111.这是否有原因发生?
答案 0 :(得分:1)
由于截断为8位unsigned char值(分配给c时),您获得的结果是正确的。
unsigned char
c
如果您需要10位宽的值,则应使用其他数据类型,例如uint16_t或unsigned int。
uint16_t
unsigned int
Reference to C++ integer datatypes