首页 > 开发 > Java > 正文

java基于移位操作实现二进制处理的方法示例

2024-07-13 10:03:48
字体:
来源:转载
供稿:网友

本文实例讲述了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));  }}

希望本文所述对大家java程序设计有所帮助。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表