判断一个数是否偶数(深度思考)

2023-10-31

当看到这个题 很明显就能想到

if(unm % 2 == 0){
	return true;
}else{
	return false;
}

那么如果继续优化 我们都知道 计算机都是2进制计算 那么我们可以从二进制入手
2 ----> 0010 ; 4------->0100 ; 3-------->0011 ; 5------->0101
那么优化之后的代码 是不是就是 判断转换二进制之后的 最后一位是不是0即可

String binarySystemString =  Integer.toBinaryString(num);
if (binarySystemString.endsWith("0")){
	return true; 
 }else {
	 return false;
 }

那么我们继续想 这样虽然是2进制了 但是 还是有进步空间 我们都知道 按位运算是计算机中最快的运算 那么我们可以用按位与解决该问题么
我们都知道 1 -------> 0001
2 ----> 0010 ; 4------->0100 ; 3-------->0011 ; 5------->0101
1&2 —>0000 ; 1&4----->0000 ; 1&3 ---->0001 ; 1&5 ----->0001
两个数的二进制同为1,结果才为1,否则为0
那么我们只需要判断 这个数和1异或之后的数是否为0即可
所以

if((num & 1) == 0){
	return true;
}else{
	return false;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

判断一个数是否偶数(深度思考) 的相关文章

随机推荐