首页 > 其他分享 >使用位运算验证一个数是否为奇数?

使用位运算验证一个数是否为奇数?

时间:2022-10-10 10:08:09浏览次数:53  
标签:运算 验证 int 奇数 System flag boolean out

位运算是我们学习计算机时,常面对的计算,但是他的实际用途,我们无法知晓,下文笔者将讲述使用位运算的方式验证奇数,偶数的方法,如下所示:

下文是笔者验证一个数是否为奇数的方法

实现原理:

    1.当一个数为正数时,其奇数二进制位的最后一位必须为1,采用这种对数进行验证

    2.当一个数为负数时,先将其转换为绝对值(~a+1),然后再对其进行验证


 

package com.java265.algorithm;

/*
* 判断一个数 还是奇数,还是偶数(0也作为偶数)
* */
public class CheckDataOddNumber {

public static void main(String[] args) {

int times = 1000000; // 测试次数
boolean checkFlag = true;
for (int i = 0; i < times; i++) {

int a = 0;
boolean b1 = isOddNumber1(a);
boolean b2 = isOddNumber2(a);
if (b1 != b2) {
checkFlag = false;
}

// System.out.println(b1);
// System.out.println(b2);

}
if (!checkFlag) {
System.out.println("=======wrong!======");
} else {
System.out.println("=====good!======");

}
}

/*
* 是否为奇数
*/
private static boolean isOddNumber1(int a) {
// 是奇数
boolean flag = true;
if (a % 2 == 0) {
flag = false;// 偶数
}
return flag;
}

/*
* 是否为奇数 采用位运算的方式
*/
private static boolean isOddNumber2(int a) {
// 是奇数
boolean flag = true;
flag = ((((~a) + 1) & a) == 1);
return flag;
}

标签:运算,验证,int,奇数,System,flag,boolean,out
From: https://blog.51cto.com/u_15736642/5742885

相关文章

  • 多层三目运算符
    参考:https://blog.csdn.net/qq_36138652/article/details/115789463......
  • 运算符
    java中支持的运算符算数运算符+,-,*,/,%,++,--+,左右任意一侧存在字符串,那么一定进行字符串拼接++,在单独使用的时候,不困放在前后,都是加1的操作++......
  • C++运算符
    目录 ​​算术运算符(进行四则运算)​​​​赋值运算符(表达式的值赋给变量)​​​​比较运算符(表达是比较,返回一个真值或假值)​​​​逻辑运算符(返回表格式的结果真或......
  • 位位运算
    位位运算思路观察一下题中所说的“将其中一个数变为\(a\)\(and\)\(b\),另一个变成\(a\)\(or\)\(b\)”,这个操作事实上是将\(a\)和\(b\)对应二进制位不同的\(0\)和\(1......
  • 位位运算 方法记录
    题解位运算简单理解:and(&):有假则假;or(|):有真则真;不妨从输入样例入手,看看能有什么发现。举几个例子:1(001)&2(010)==3(011)1(001)|2(010)==0(000)2(010......
  • python调用c++的方法,加速运算
    cpp源代码#include"iostream"usingnamespacestd;classCalc{public:intadd(inta,intb);};intCalc::add(inta,intb){cout<<"收到参数为a,b:"<<a<......
  • Basler相机未成功安装USB驱动,数字签名验证失败问题
    1、使用pylonViewer修复 点击问题相机,右侧下方点击修复。2、如果未解决,如win7系统,是由于缺少补丁导致数字签名验证失败,阻止了驱动的正确安装。补丁下载链接如下:http......
  • SpringMVC之参数验证
    SpringMVC之参数验证目录SpringMVC之参数验证一、为什么使用参数验证1.1、参数验证作用二、怎么使用参数验证2.1、小结三、具体操作流程3.1、在pojo类中添加需要使用的注......
  • 位位运算 方法记录
    题解我们首先来分析小朋友的三个指标:手里的数,特征值,分数。手里的数:即我们输入的长度为\(n\)的序列;特征值:从第一个小朋友到当前小朋友的手上的数的最大子段和;分数......
  • java---了解以下运算符
    了解即可1&2用于条件判断,&条件1和2都执行1&&2,条件1判断错误的情况下,条件2不执行&当运算符的化,例如4&7,两者上下对比都是1则为1,反之为0,结果就是二进制100也就是......