java基于移位操作实现二进制处理的方法示例
本文实例讲述了java基于移位操作实现二进制处理的方法。分享给大家供大家参考,具体如下:
/** *@authoropenks *@since2013-9-21移位操作实例 */ publicclassTestDisplacement{ /** *@paramargs */ 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位的值相等。。"); } }
/** *@authoropenks *@since2013-9-21 *二进制十进制的处理可用于权限控制可最多管理32项权限 */ publicclassTestBinary{ /** *获取十进制数字k转换为二进制后第index位的值 *@paramk十进制数字 *@paramindex第index位(从1开始) *@return十进制数字转换为二进制后第index位的值 */ publicstaticintgetValue(Integerk,intindex){ Stringstring=Integer.toBinaryString(k); intlen=string.length(); System.out.println("二进制串为:"+string+"\n共有"+len+"位"); if(index>len){ return0; }else{ returnstring.charAt(len-index)-'0'; } } /** *设置十进制数字k转换为二进制后第index位的值并返回处理后的十进制数字 *@paramk十进制数字k *@paramindex第index位(从1开始) *@paramm该index位上的值只有0,1两种选择 *@return处理后的十进制数字 */ publicstaticintsetValue(Integerk,intindex,Integerm){ //相当于2的index-1次方 Integert=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; } } } /** *@paramargs */ publicstaticvoidmain(String[]args){ inta=25;//原来权限值 inti=2;//要查看的位数 intd=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程序设计有所帮助。