Java的位运算符——&0xFF的运算与讲解

一:首先区分一下 A~F的意思先

A,代表十进制的10,二进制的1010。
B,代表十进制的11,二进制的1011。
C,代表十进制的12,二进制的1100。
D,代表十进制的13,二进制的1101。
E,代表十进制的14,二进制的1110。
F,代表十进制的15,二进制的1111。
e
二:区分  &,丨,^的运算规则
  & (按位与运算符)表示:
两个操作数中位都为1,结果为1
如果两个操作中位一个1另一个0 ,结果为0
即运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1;
例如:1010 & 1110= 1010

 |(按位或运算符)表示:
两个操作中位只有一个为1,结果就等与1
即运算规则:0|0=0; 0|1=1; 1|0=1; 1|1=1

例如: 1010 | 1111 =1111

^(异或 运算符)表示
两个中位如果相同的数值,结果为 0,
如果两个中位 数值不同,结果为1.
即运行结果:同数值:         0^0=0;1^1=0; 
            不同数值:       0^1=1; 1^0=1;

例如:1010 ^  1110 = 0100

 ~(取反运算符)表示:(这个我不太懂)
参加运算的一个数据,按二进制位进行“取反”运算。
即:对一个二进制数按位取反,即将0变1,1变0
运算规则:~1=0; ~0=1;

例如:使一个数的最低位为零,可以表示为:a&~1
~1的值为1111111111111110

  

 3:0x31 (一般看到0x==》16进制数)

       0x31计算: 先把0x31转换为 10进制的数  0x31(10)=16*3+1=49

         再把得到10进制转 2进制    49(2)=110001

  所以 0xFF 也是这样计算的  F==>表示15进制

        0xFF(10)= 16*15+15=255

         255 (2) = 11111111

   0x31  &  0xFF 的 计算 

   因为0xFF得出的结果 8个字节,而位数要相同,那么 0x31就要补0,因为在0x31的二进制为110001已经又6个字节了,那么再前面加两个0即可(这句其实我觉得我说的有点怪怪的)

  a): 0x31 &  0xFF

 = 00110001 &  11111111

 =00110001          

 =110001

 b):  0x31  |  0xFF 

  = 00110001  |  11111111

  =11111111 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值