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<

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程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值