罗迈的回答:左移运算将一个二进制位的操作数按指定移动的位数向左移动,移出位被丢弃,右边移出的空位一律补0。右移运算将一个二进制位的操作数按指定移动的位数向右移动,移出位被丢弃,左边移出的空位一律补0,或者补符号位,这由不同的机器而定。在使用补码作为机器数的机器中,正数的符号位为0,负数的符号位为1。
在移位运算时,byte、short和char类型移位后的结果会变成int类型,对于byte、short、char和int进行移位时,编译器未做任何优化的情况下(优化后不可预期),规定实际移动 的次数是移动次数和32的余数,也就是移位33次和移位1次得到的结果相同。
移动long型的数值时,规定实际移动的次数是移动次数和64的余数,也就是 移动66次和移动2次得到的结果相同。
金曼的回答:左移运算将一个二进制位的操作数按指定移动的位数向左移动,移出位被丢弃,右边移出的空位一律补0。右移运算将一个二进制位的操作数按指定移动的位数向右移动,移出位被丢弃,左边移出的空位一律补0,或者补符号位,这由不同的机器而定。在使用补码作为机器数的机器中,正数的符号位为0,负数的符号位为1。
在移位运算时,byte、short和char类型移位后的结果会变成int类型,对于byte、short、char和int进行移位时,编译器未做任何优化的情况下(优化后不可预期),规定实际移动 的次数是移动次数和32的余数,也就是移位33次和移位1次得到的结果相同。
移动long型的数值时,规定实际移动的次数是移动次数和64的余数,也就是 移动66次和移动2次得到的结果相同。
郭晓峰的回答:字节移位指令一共有四个 循环右移、循环左移、右移、左移 循环移位指令(左、右)八个位是循环移动的 也就是说循环左移1位就是向左移动1位 最高位移到最低位处 循环右移1位相应的位向右移动1位最低位移到最高位 例如:11000010 》》》循环右移1位》》》01100001 11000010 》》》循环左移1位》》》10000101 右移1位:也就是说相应的位都右移1位 最低位消失 最高位补0 左移1位:也就是说相应的位都左移1位 最高位消失 最低位补0 例如:11000010》》》左移》》》》》10000100 11000010》》》右移》》》》》01100001 代号直接看西门子就是了 满意请及时加分 谢谢 |