我的问题是为什么a>>1移动符号位,而不是(a&0xaaaaaaaa)>>1?代码片段inta=0xaaaaaaaa;std::cout>1)>1);std::cout>1)>1);结果410101010101010101010101010101010411010101010101010101010101010101410101010101010101010101010101010401010101010101010101010101010101 最佳答案 a>>1很无聊。它只是为负a的signed类型定义的实现。(a&0xaaaa