java运算符的作用_java |、&、~、>>、<<运算符的作用。

packageaa;public classBitUtils {/*** 获取运算数指定位置的值

* 例如: 0000 1011 获取其第 0 位的值为 1, 第 2 位 的值为 0

*

*@paramsource

* 需要运算的数

*@parampos

* 指定位置 (0<=pos<=7)

*@return指定位置的值(0 or 1)*/

public static byte getBitValue(byte source, intpos) {return (byte) ((source >> pos) & 1);

}/*** 将运算数指定位置的值置为指定值

* 例: 0000 1011 需要更新为 0000 1111, 即第 2 位的值需要置为 1

*

*@paramsource

* 需要运算的数

*@parampos

* 指定位置 (0<=pos<=7)

*@paramvalue

* 只能取值为 0, 或 1, 所有大于0的值作为1处理, 所有小于0的值作为0处理

*

*@return运算后的结果数*/

public static byte setBitValue(byte source, int pos, bytevalue) {byte mask = (byte) (1 < 0) {

source|=mask;

}else{

source&= (~mask);

}returnsource;

}/*** 将运算数指定位置取反值

* 例: 0000 1011 指定第 3 位取反, 结果为 0000 0011; 指定第2位取反, 结果为 0000 1111

*

*@paramsource

*

*@parampos

* 指定位置 (0<=pos<=7)

*

*@return运算后的结果数*/

public static byte reverseBitValue(byte source, intpos) {byte mask = (byte) (1 <

}/*** 检查运算数的指定位置是否为1

*

*@paramsource 00001011

* 需要运算的数

*@parampos

* 指定位置 (0<=pos<=7)

*@returntrue 表示指定位置值为1, false 表示指定位置值为 0*/

public static boolean checkBitValue(byte source, intpos) {

source= (byte) (source >>>pos);return (source & 1) == 1;

}/*** 入口函数做测试

*

*@paramargs*/

public static voidmain(String[] args) {//取十进制 11 (二级制 0000 1011) 为例子

byte source = 11;//取第2位值并输出, 结果应为 0000 1011

for (byte i = 7; i >= 0; i--) {

System.out.printf("%d ", getBitValue(source, i));

}//将第6位置为1并输出 , 结果为 75 (0100 1011)

System.out.println("\n" + setBitValue(source, 6, (byte) 1));//将第6位取反并输出, 结果应为75(0100 1011)

System.out.println(reverseBitValue(source, 6));//检查第6位是否为1,结果应为false

System.out.println(checkBitValue(source, 6));//输出为1的位, 结果应为 0 1 3

for (byte i = 0; i < 8; i++) {if(checkBitValue(source, i)) {

System.out.printf("%d ", i);

}

}

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值