java基于移位操作实现二进制处理的方法示例
更新时间:2017年02月09日 11:25:28 作者:zhuyangxing
这篇文章主要介绍了java基于移位操作实现二进制处理的方法,结合实例形式分析了java针对二进制的移位操作处理技巧,需要的朋友可以参考下
本文实例讲述了java基于移位操作实现二进制处理的方法。分享给大家供大家参考,具体如下:
/**
* @author openks
* @since 2013-9-21 移位操作实例
*/
public class TestDisplacement {
/**
* @param args
*/
public static void main(String[] args) {
// 十进制数字2向左移3位 即 二进制的10向左移3位即10000 转换为十进制为2的4次方 即16
System.out.println("2向左移三位:" + (2 << 3));
System.out.println("7向左移一位:" + (7 << 1));
System.out.println("7向右移一位:" + (7 >> 1));
int n = 3;
System.out.println("2的" + n + "次方:" + (int) Math.pow(2, n));
System.out.println("1向左移" + n + "位:" + (1 << n));
System.out.println("可见2的N次方和1左移N位的值相等。。");
}
}
/**
* @author openks
* @since 2013-9-21
* 二进制十进制的处理 可用于权限控制 可最多管理32项权限
*/
public class TestBinary {
/**
* 获取十进制数字k转换为二进制后第index位的值
* @param k 十进制数字
* @param index 第index位 (从1开始)
* @return 十进制数字转换为二进制后第index位的值
*/
public static int getValue(Integer k,int index){
String string = Integer.toBinaryString(k);
int len = string.length();
System.out.println("二进制串为:"+string+"\n共有"+len+"位");
if(index>len){
return 0;
}else{
return string.charAt(len-index)-'0';
}
}
/**
* 设置十进制数字k转换为二进制后第index位的值并返回处理后的十进制数字
* @param k 十进制数字k
* @param index 第index位 (从1开始)
* @param m 该index位上的值 只有0,1两种选择
* @return 处理后的十进制数字
*/
public static int setValue(Integer k,int index,Integer m){
//相当于2的index-1次方
Integer t = 1<<(index-1);
if(t>k){
if(m==1){
return t+k;
}else{
return k;
}
}else{
int m1 = getValue(k,index);
if(m1==0){
return k+t;
}else{
return k-t;
}
}
}
/**
* @param args
*/
public static void main(String[] args) {
int a=25;//原来权限值
int i=2;//要查看的位数
int d = 2;//要修改的位数
a= setValue(a, d, 1);//修改第d位的值为1
System.out.println("第"+i+"位的值为:"+getValue(a,i));
}
}
PS:这里再为大家推荐几款计算与转换工具供大家参考使用:
在线任意进制转换工具:
http://tools.jb51.net/transcoding/hexconvert
科学计算器在线使用_高级计算器在线计算:
http://tools.jb51.net/jisuanqi/jsqkexue
在线计算器_标准计算器:
http://tools.jb51.net/jisuanqi/jsq
希望本文所述对大家java程序设计有所帮助。
相关文章
SpringBoot整合Thymeleaf与FreeMarker视图层技术
在目前的企业级应用开发中,前后端分离是趋势,但是视图层技术还占有一席之地。Spring Boot 对视图层技术提供了很好的支持,福安防推荐使用的模板引擎是Thymeleaf,不过想FreeMarker也支持,JSP技术在这里并不推荐使用2022-08-08
基于Spring Security的Oauth2授权实现方法
这篇文章主要介绍了基于Spring Security的Oauth2授权实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-09-09
关于Idea创建Java项目并引入lombok包的问题(lombok.jar包免费下载)
很多朋友遇到当idea创建java项目时,命名安装了lombok插件却不能使用注解,原因有两个大家可以参考下本文,本文对每种原因分析给出了解决方案,需要的朋友参考下吧2021-06-06


最新评论