申请会员ID:wangwangwang_
申请会员ID:wangwangwang_申请邮箱:1664028504@qq.com
简单的解释一下这段代码
```java
/**
* java位运算
* 按位与 & 两个相应的二进制形式的对应的位数都为1,则结果为1,记为同1为1,否则为0
* 例: int a = 4,b = 5; a&b ==> 结果为4
*先把a和b转为二进制
*a = 100
*b = 101
*a&b = 100 转成十进制就是4
*
*异或 ^ 和按位与 &相反 相同为0,不同为1,不做解释
*移位运算
*左 移 (<< ) 右边空出的位用0填补高位左移溢出则舍弃该高位。
*右 移 (>> ) 左边空出的位用0或者1填补。正数用0填补,负数用1填补。注:不同的环境填补方式可能不同;低位右移溢出则舍弃该位。
* a << 1 代表a转成二进制向左移一位; a >> 1 代表a转成二进制向右移一位
*/
public class C0239e {
static {
ByteBuffer.allocate(8); // 静态代码块,类加载的时候会执行
}
public static String a(byte[]bArr) {/* C0239e.a 函数*/
StringBuilder sb = new StringBuilder();
int i = 65535;
for (byte b2: bArr) {
i ^= b2 & 255; //等价于 i = i ^ (b2 & 255)
for (int i2 = 0; i2 < 8; i2++) {
// 三元运算符 (i & 1) != 0 为true i= (i >> 1) ^ 40961 否则 i = i >> 1
i = (i & 1) != 0 ? (i >> 1) ^ 40961 : i >> 1;
}
}
String hexString = Integer.toHexString(i);
// 三元运算符 (hexString.trim().length() != 4 && hexString.trim().length() == 3)
// true 返回 a.a(sb, "0", hexString) 应该有个类a,a类有个静态方法a,接受参数StringBuilder,String,String 返回一个String
// false 返回 hexString
return (hexString.trim().length() != 4 && hexString.trim().length() == 3) ? a.a(sb, "0", hexString) : hexString;
}
}
``` 抱歉,未能达到申请要求,申请不通过,可以关注论坛官方微信(吾爱破解论坛),等待开放注册通知。
页:
[1]