分享实用小工具:JAVA版本位运算工具类
2022/6/23 1:23:31
本文主要是介绍分享实用小工具:JAVA版本位运算工具类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
将二进制数中的每位数字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版本位运算工具类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-21《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》简介
- 2024-12-21后台管理系统开发教程:新手入门全指南
- 2024-12-21后台开发教程:新手入门及实战指南
- 2024-12-21后台综合解决方案教程:新手入门指南
- 2024-12-21接口模块封装教程:新手必备指南
- 2024-12-21请求动作封装教程:新手必看指南
- 2024-12-21RBAC的权限教程:从入门到实践
- 2024-12-21登录鉴权实战:新手入门教程
- 2024-12-21动态权限实战入门指南
- 2024-12-21功能权限实战:新手入门指南