早教吧作业答案频道 -->数学-->
算法:使用位运算判断两个数是否同为正,或同为负网上给出的示例代码如下: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,比较结果返回布尔值.示例代码没错的
看了 算法:使用位运算判断两个数是...的网友还看了以下:
用符号(x]表示小于x的最大整数,如(π]=3,(-1.2]=-2.有下列命题:①若函数f(x)= 2020-05-13 …
对于实数x,符号〔x〕表示不超过x的最大整数例如〔π〕=3,〔-1.08〕=-2,定义函数{x}= 2020-05-16 …
复习的时候遇到的,有点懵……想不过来了.y=2^x(x∈R)y=2^(-z)(z∈R)^是次方符号 2020-06-03 …
A=R,B={x|x大于0},f:x→y=|x|是从集合A到集合B的函数.集合A和集合B的元素符号 2020-06-27 …
一个例题.(x-1/x)^9展开式通项.Tr+1=c9r(9在下,r在上),x^9-r*(-1/x 2020-07-09 …
一、已知非空集合P满足:①P包含于{1,2,3,4,5}②若a∈P,则6-a∈P.符合上述条件的集 2020-07-28 …
求∫dx/(r^2+x^2)^(3/2),符号和式子的解释:^代表乘方号.∫代表积分号.r^2就是 2020-07-30 …
把解的过程写出来.填空题:1.已知命题P:зX∈R使x^2+2x=3,则非P是()注:з是特称命题 2020-08-03 …
每日50题之函数和导数首先很多符号弄不出来不好意思啊~1.F(x)=Lof0.5(底数)(x的平方- 2020-11-10 …
请数学高手解释高数中这道关于方向导数的例题:设由原点到(x、y)的向径为r,从x轴正向沿逆时针方向例 2020-11-28 …