最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
java基于移位操作实现二进制处理的方法示例
时间:2017-03-24 编辑:简简单单 来源:一聚教程网
代码如下 | 复制代码 |
/** * @author openks * @since 2013-9-21 移位操作实例 */ publicclassTestDisplacement { /** * @param args */ publicstaticvoidmain(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)); intn =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项权限 */ publicclassTestBinary { /** * 获取十进制数字k转换为二进制后第index位的值 * @param k 十进制数字 * @param index 第index位 (从1开始) * @return 十进制数字转换为二进制后第index位的值 */ publicstaticintgetValue(Integer k,intindex){ String string = Integer.toBinaryString(k); intlen = string.length(); System.out.println("二进制串为:"+string+"\n共有"+len+"位"); if(index>len){ return0; }else{ returnstring.charAt(len-index)-Ɔ' } } |
代码如下 | 复制代码 |
/** * 设置十进制数字k转换为二进制后第index位的值并返回处理后的十进制数字 * @param k 十进制数字k * @param index 第index位 (从1开始) * @param m 该index位上的值 只有0,1两种选择 * @return 处理后的十进制数字 */ publicstaticintsetValue(Integer k,intindex,Integer m){ //相当于2的index-1次方 Integer t =1<<(index-1); if(t>k){ if(m==1){ returnt+k; }else{ returnk; } }else{ intm1 = getValue(k,index); if(m1==0){ returnk+t; }else{ returnk-t; } } } /** * @param args */ publicstaticvoidmain(String[] args) { inta=25;//原来权限值 inti=2;//要查看的位数 intd =2;//要修改的位数 a= setValue(a, d,1);//修改第d位的值为1 System.out.println("第"+i+"位的值为:"+getValue(a,i)); } } |
-
上一个: Java生成图形验证码工具类
-
下一个: java中获取当前服务器的Ip地址的方法
相关文章
- Surface Book 2终于要来了 配备第八代酷睿处理器 08-01
- 联想Moto Z2 Force渲染图曝光 搭载骁龙835处理器 07-21
- 英特尔推出至强可扩展处理器 高达28颗内核 07-12
- 索尼全面屏旗舰曝光 自研处理器加持 07-05
- vivo新旗舰现身跑分 搭载骁龙660处理器 06-29
- PS批处理功能怎么使用 06-13