Java中>、>>、>>>三者有什么区别呢?
下文笔者讲述java中>、>>、>>>三个运算符之间的区别说明,如下诉讼hi
三者功能说明
大于号
“>”: 大于 其功能: 用于大小比较 if(a>b)…结果是boolean类型
两个大于号
">>: 在java中用于表示右移 <<(左移)和>>(右移) 左移运算: 将一个二进制位的操作数按指定移动的位数向左移位,移出位被丢弃,右边的空位一律补0 右移运算: 将一个二进制位的操作数按指定移动的位数向右移动,移出位被丢弃,左边移出的空位或者一律补0,或补符号位 由不同的机器而定 在使用补码作为机器数的机器中,正数的符号位为0,负数的符号位为1, 具体的实现思路: 1.将数据转换为二进制 2.右移几位就去掉右边的几位数,左移几位就在右边加几个0 3.如: 14右移2位就是转成二进制变成1110,去掉右边的10,变成11,11转成十进制就是3 左移2位就是111000,转成十进制就是56例:
int i=15; i>>2的结果是3,移出的部分将被抛弃。 转为二进制的形式可能更好理解 0000 1111(15)右移2位的结果是0000 0011(3) 0001 1010(18)右移位的结果是0000 0011(3)。
三个大于号
”>>>": 无符号右移 叫逻辑右移 即若该数为正,则高位补0 当该数为负数,则右移后高位同样补0。例:
res = 20 >> 2; 20的二进制为 0001 0100 右移2位后为 0000 0101 则 res =5; res = -20 >> 2; -20的二进制为 1110 1011,右移2位,此时高位补0 即 0011 1010,结果为 res = -5;
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。