早教吧作业答案频道 -->数学-->
算法:使用位运算判断两个数是否同为正,或同为负网上给出的示例代码如下:booleanisSameSign(intx,inty){//有0的情况例外,^相同得0,不同得1return(x^y)>=0;//true表示x、y有相同的符号,false表示x、y
题目详情
算法:使用位运算判断两个数是否同为正,或同为负
网上给出的示例代码如下:
boolean isSameSign(int x,int y){ //有0的情况例外,^相同得0,不同得1
return (x^y)>= 0;//true表示x、y有相同的符号,false表示x、y有相反的符号
}
如果两个数都是正数,则二进制的第一位均为0,x^y=0
如果两个数都是负数,则二进制的第一位均为1,x^y=0
如果两个数符号相反,则二进制的第一位相反,x^y=1
但是为什么判断条件是>=0呢?难道还有小于0的情况?直接在0和1之前判断不就行了嘛?网上的示例是不是错了呢?
网上给出的示例代码如下:
boolean isSameSign(int x,int y){ //有0的情况例外,^相同得0,不同得1
return (x^y)>= 0;//true表示x、y有相同的符号,false表示x、y有相反的符号
}
如果两个数都是正数,则二进制的第一位均为0,x^y=0
如果两个数都是负数,则二进制的第一位均为1,x^y=0
如果两个数符号相反,则二进制的第一位相反,x^y=1
但是为什么判断条件是>=0呢?难道还有小于0的情况?直接在0和1之前判断不就行了嘛?网上的示例是不是错了呢?
▼优质解答
答案和解析
示例没有错,如果符号相反,那么异或之后所得数字符号为肯定为1,其他的非符号为取值可为0,可为1,那么此时得出的相异或的结果肯定是一个小于0的数据(最大为-1),反之如果符号相同,则符号为为0,最小为0,比较结果返回布尔值.示例代码没错的
看了 算法:使用位运算判断两个数是...的网友还看了以下:
如图所示,一端封闭、粗细均匀的U形细管,管道水平部分长为L、竖直部分长1.5L,管内有一段长度为L 2020-04-07 …
1.下列对欧姆定律表达式I=U/R的理解中正确的是A.U与R的比值是一个恒量B.导体的电阻一定时, 2020-04-08 …
某市10000名考生参加某次模拟考试,他们的数学成绩近似地服从正态分布N(85,102),则数学成 2020-04-13 …
平常所说的“三网合一”技术中,三网是指<)。A.电信网,电话网,计算机网B.电视网,电话网,计算机网 2020-05-24 …
“三网合一”的三网是指 (69) 。A.电信网、广播电视网、互联网B.物联网、广播电视网、电信网# 2020-05-26 …
公司尚未向InterNIC申请永久网络ID,这样,您可以使用保留给专有内部网的B网络ID172.16 2020-05-31 …
关于复合函数可导的问题f(u),在u=g(x0)处不可导,g(x)在x0处不可导,那么复合函数f( 2020-07-16 …
题目是这样的:开始人与船以速度V向前走.之后人以相对于船的速度u向后跳出.若设人跳出后,船的速度为V 2020-11-22 …
电场中U=Ed,U我们学习的时候类比为高度h,E我们类比为g,有E=U/d,那么h/g等于什么?写错 2020-11-29 …
use这个单词中的u的发音为什么是/ju:本人英语口语不好,最近一直在恶补语音知识.书上说英语有20 2021-02-01 …