gpt4 book ai didi

java - 如何在java中屏蔽字节来获取条件

转载 作者:行者123 更新时间:2023-12-01 15:39:49 24 4
gpt4 key购买 nike

我从套接字读取byte[]作为Param_CodeParam_Code 的条件如下:

• 选项 1:有时 Param_Code 对应于 ID

• 选项 2:有时 Param_Code 对应于 0x40000000 + ID

• 选项 3:有时 Param_Code 对应于 0x80000000 + ID

这是我的代码:

byte[] cbuf = new byte[4];

socketReader.read(cbuf, 0, 4);

int Param_Code = byteArrayToIntBI(cbuf, 0);

public static int byteArrayToIntBI(byte[] b, int offset) {
int value = 0;
for (int i = 3; i > -1; i--) {
int shift = (i) * 8;
value += (b[i + offset] & 0x000000FF) << shift;
}
return value;
}

我的问题是,我如何知道(使用 if 语句或其他语句)Param_Code 何时是上述选项之一?

如何获取身份证?

if( ? ){
it is Option 1 and ID = ?
}else if( ? ){
it is Option 1 and ID = ?
}else if( ? ){
it is Option 1 and ID = ?
}

最佳答案

这是标准的摆弄

int mask1 = 0x80000000;
int mask2 = 0x40000000;
int id = paramCode & ~(mask1|mask2);// ~ is NOT, & is AND and | is OR
if((paramCode&mask1) != 0){
//option 2
}else if((paramCode&mask2) != 0){
//option 3
}else{
//option 1
}

我假设 ID 适合 0x3fffffff,如果不是的话,你有严重的问题

关于java - 如何在java中屏蔽字节来获取条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8242639/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com