关于java的一首基础题。面试题不用if判断两数大小

通常判断两数的大小,我们只要用一个if和一个判断大小就可以了。介是如果不用if你可以

 

把它判出来吗。回答当然能了。

 

这一道题关连到java的基础知识 。位的运算。”|“,“&”,“^”。。。这一类的运算

 

代码中下

                                int a=4,b=9;
		int[] tempArray={a,b};
		int temp=a-b;
		System.out.println(tempArray[temp>>>31]);

 

如上代码。进行了位的运算。

二进制中非负数的第一位用0表示。负数用1表示。而int 型占4个字节也就是32位二进制。

向右移动了31位后生成的新的二进制的值1或是0.如果是1说明后面的值大。反知另外个大

 

 

你可能感兴趣的:(java,面试,idea)