• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

分享实用小工具:JAVA版本位运算工具类

java 佚名 2年前 (2023-03-11) 40次浏览 已收录 0个评论

标签:JAVA 运算 二进制 param num return 工具 bit

将二进制数中的每位数字1或0代表着某种开关标记,1为是,0为否,则一个数字可以代表N位的开关标记值,可有效减少过多的变量定义 或 过多的表字段,同时也能在一些复杂的组合判断场景下利用位与、位或、异或等位运算实现简单高效的逻辑判断

如下是JAVA版位运算工具类,没啥技术含量,主要是运用:位移、位与、位或、异或 运算,如果对位运算操作不清楚的可以阅读我之前的文章:简简单单学会C#位运算 – 梦在旅途 – 博客园 (cnblogs.com) –虽是C#,其实原理都一样,与语言无关。

/**
 * @author zuowenjun
 * @description 位运算工具
 * 用途:将二进制数中的每位数字1或0代表着某种开关标记,1为是,0为否,则一个数字可以代表N位的开关标记值,可有效减少过多的变量定义 或 过多的表字段
 */
public class BitUtils {

    /**
     * 获取二进制数字中指定位数的结果,如:1011,指定第2位,则结果是0,第3位,则结果是1
     *
     * @param num 二进制数(可以十进制数传入,也可使用0b开头的二进制数表示形式)
     * @param bit 位数(第几位,从右往左,从0开始)
     * @return
     */
    public static int getBitFlag(long num, int bit) {
        return (int) num >> bit & 1;
    }

    /**
     * 更新二进制数字中指定位的值
     *
     * @param num       二进制数(可以十进制数传入,也可使用0b开头的二进制数表示形式)
     * @param bit       位数(第几位,从右往左,从0开始)
     * @param flagValue 位标记值(true=1,false=0)
     * @return
     */
    public static long updateBitValue(long num, int bit, boolean flagValue) {
        if (flagValue) {
            //将某位由0改为1
            return num | (1 << bit);
        } else {
            //将某位由1改为0
            return num ^ (getBitFlag(num, bit) << bit);
        }
    }

    /**
     * 将数字转换为二制值形式字符串
     *
     * @param num
     * @return
     */
    public static String toBinaryString(long num) {
        return Long.toBinaryString(num);
    }


}

MYSQL 的SQL语句也可以使用位运算进行查询或更新字段的操作哦,用法可自行查网络相关资料。

标签:JAVA,运算,二进制,param,num,return,工具,bit

来源: https://www.cnblogs.com/zuowj/p/16400087.html


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:分享实用小工具:JAVA版本位运算工具类
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址