java最低位怎么取_java简单的二进制位操作,取位数据,设置位数据

1.取高位的数据

例如一个字节 byte b=0xE7; 二进制为 11100111;

要取出高三位 即“111”再转成int ,取为7;

/**

* 取一个字节的高几位bit

* @param b

* @param length

* @return

*/

public static int getLeftNum(byte b,int length) {

return b>>(8-length);

}

2.取低位的数据

需要取低几位,就先构建一个低几位全是1,其它位全是0的数据 ,即11111111往右移,然后保存需要的位数

例如,需要取低三位的,则把 11111111往右移8-3=5位,得到00000111

再用00000111&(与)原数据,则把原数据的前5位全置为0了

/**

* 取一个字节的低几位bit

* @param b

* @param length

* @return

*/

public static int getRightNum(byte b,int length) {

byte mv=(byte) (0xff>>(8-length));

return b&mv;

}

3.取中间几位

先从高位的方向取,再从低位的方向取

/**

* 取中间几位,包括 startIndex位和endIndex位

* @param b

* @param startIndex

* @param endIndex

* @return

*/

public static int getMidNum(byte b,int startIndex,int endIndex) {

byte i=(byte) getLeftNum(b,endIndex+1);//先取高几位

return getRightNum(i,endIndex-startIndex+1);//再取低几位

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值