可以使用位运算来判断。

&是位的与运算符,是指二进制数按位“与”的操作, 逻辑与就是两者都为真的时候才为真,其他真假,假真,假假的运算结果都是假。二进制写法如下
1 & 1 = 1 ,  1 & 0 = 0 , 0 & 1 = 0, 0 & 0 = 0

如果想判断十进制数 d 的二进制第n位是否是1,应该用以下的数m来进行&运算

m = 1 << n-1 (n是大于0的整数)

以上公式
n=1的时候m=1
n=2的时候m=2
n=3的时候m=4
n=4的时候m=8
...

如果同时mask多个位,只需要将m相加即可。
例如第2位和第3位, 将m2+m3 = 2 + 4 = 6

例:获取10的二进制表示中的第2位是否为1:

m= 1 << (2-1) = 2;

10 & 2 二进制是 
1010 
0010 &
————————
0010
结果不是0, 所以说明第二位是1.

根据boolean设置二进制第n位的值:

  1. private void setFlag(int mask, boolean b) {
  2. if (b) {
  3. flags |= mask;
  4. } else {
  5. flags &= ~mask;
  6. }
  7. }

拓展学习链接:

位运算

位运算应用技巧

Java位操作方法,位运算实际应用(简单总结)

java:判断二进制数据中第n位是否为1的更多相关文章

  1. Java读写二进制数据

    import java.io.*; import java.time.LocalDate; public class Test { public static void main(String[] a ...

  2. Java/Android 二进制数据与String互转

    将经过加密的二进制数据保存到本地的方法 byte[] src = new byte[] { 122,-69, -17, 92, -76, 52, -21, -87, -10, 105, 76, -75 ...

  3. java 判断一个字符串中的数字:是否为数字、是否包含数字、截取数字

    题外话: JavaScript中判断一个字符是否为数字,用函数:isDigit(); 一.判断一个字符串是否都为数字 package com.cmc.util; import java.util.re ...

  4. java 判断Map集合中包含指定的键名,则返回true,否则返回false。

    public static void main(String[] args) { Map map = new HashMap(); //定义Map对象 map.put("apple" ...

  5. java判断A字符串中是否包含B字符

    java.lang.String类提供的方法 public boolean contains(CharSequence s) 当且仅当此字符串包含指定的 char 值序列时,返回 true. 例如: ...

  6. java判断字符串String中是否存在中文

    public class IsContainChinese { public static boolean isContainChinese (String str){ boolean flag=tr ...

  7. java判断一个字符串中是否包含全角

    public static boolean isAngle(String str){ if(str.getBytes().length==str.length()){ //全是半角 return tr ...

  8. java判断string数组中是否包含某个元素

  9. Erlang 位串和二进制数据

    http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=25876834&id=3300393 因为在本人工作中,服务端Erla ...

随机推荐

  1. mongodb启动时报错ERROR: child process failed, exited with error number 1

    不多说,直接上干货! 前期博客 Ubuntu14.04下Mongodb安装部署步骤(图文详解) Ubuntu16.04下Mongodb安装部署步骤(图文详解) root@zhouls-virtual- ...

  2. C# Serializable(转)

    C# Serializable System.SerializableAttribute 串行化是指存储和获取磁盘文件.内存或其他地方中的对象.在串行化时,所有的实例数据都保存到存储介质上,在取消串行 ...

  3. Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile)

    使用maven打包的时候出现如下错误: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compil ...

  4. ftp服务通信操作

    1.将本地虚拟机网卡设置ip--->2.将虚拟机系统的网卡ip设置--->3.虚拟机设置特定网络模式vm8nat模式: (1) (2) (3) 保证正常互ping 通信, 4.在虚拟机系统 ...

  5. UISearchBar和UISearchDisplayController

    原文 http://hi.baidu.com/happywilma0118/item/e6d5730a499bba1b3a53eef8 UISearchBar继承自UIView.UIResponder ...

  6. poj_3168 平面扫描

    题目大意 给定平面上N个矩形的位置(给出矩形的左下角和右上角的坐标),这些矩形有些会有重叠,且重叠只会出现矩形的边重合全部或部分,矩形的顶点重合,而不会出现一个矩形的顶点位于另一个矩形的内部.     ...

  7. redis基础----->redis的基本使用(一)

    这里我们就在虚拟机中安装redis,并且使用java和python实现简单的操作.深情是我承担不起的重担,情话只是偶尔兑现的谎言. redis的使用 下载地址:https://redis.io/.安装 ...

  8. android基础---->NDK的使用

    NDK的发布,使“Java+C”的开发方式终于转正,成为官方支持的开发方式.NDK将是Android平台支持C开发的开端,今天我们开始ndk的学习. NDK的简要说明 ndk是什么: The Nati ...

  9. poj3734 Blocks[矩阵优化dp or 组合数学]

    Blocks Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6578   Accepted: 3171 Descriptio ...

  10. linux 程序启动与停止管理脚本

    公司接了一个第三方的系统,基于linux写的几个程序,一共有9个部件,第三方没有给脚本,每次启动或停止都得一个一个手工去停止或修改.......,这里稍微鄙视下. 没办法,求人还不如自己动手写, 需求 ...