欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-03-07 22:11:39
本文实例讲述了java基于移位操作实现二进制处理的方法。分享给大家供大家参考,具体如下: /** * @author openks * @since 20...

本文实例讲述了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:这里再为大家推荐几款计算与转换工具供大家参考使用:

在线任意进制转换工具:

科学计算器在线使用_高级计算器在线计算:

在线计算器_标准计算器:

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