在计算机的数据移位运算上,分为左移位运算和右移位运算。假设移位k,其中左移位运算很简单,丢弃最高k位,右端补齐k个零。而右移运算区分为:1) 逻辑右移: 左端补齐k个零,右端丢弃;2)算术右移: 左端补齐k个最高有效位,右端丢弃;对于无符号的右移必须上逻辑的,但对于有符号的右移: 实际上,C语言标准并没有明确定义应该使用逻辑还是算术右移。只不过,几乎所有的C编译器对有符号数都使用算术右移。Java在右移问题上则有显式的明确定义:1) x >> k是算术右移;2) x >>> k是逻辑右移;你学到了吗?[憨笑]