您的位置:首页 > 编程语言 > Java开发

java不用比较符判断大小

2014-08-22 08:18 1851 查看
public static void main(String[] args)
{

int a = 8;
int b = 90;
int id1 = (b - a) >>> 31;
System.out.println(id1); // 1

}

int类型32位,正数的第一位为0,负数的第一位为1,所以把一个正数右移31位就可以判断这个数的正负。

另注:>>和>>>的区别

右移运算符>>(有符号)

用来将一个数的各二进制位全部右移若干位.例如:a = a>>2,使a的各二进制位右移两位,移到右端的低位被舍弃,最高位则移入原来高位的值.

如:a = 00110111,则a>>2=00001101,b=11010011,则b>>2 = 11110100

右移一位相当于除2 取商,而且用右移实现除法比除法运算速度要快

无符号右移运算符>>>

用来将一个数的各二进制位无符号右移若干位,与运算符>>相同,移出的低位被舍弃,但不同的是最高位补0,如a = 00110111,则a>>>2 = 00001101,b=11010011,则b>>>2 = 00110100
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: