我有一个字节数组,应该被视为2个字节的无符号数据。 所以下面的代码代表257.我试图将它存储为short,但我收到一个错误:赋值的左侧必须是变量。有没有聪明的方法来做到这一点?请帮忙。
byte[] unsigned2ByteNum = new byte[2];
unsigned2ByteNum[0] = 1;
unsigned2ByteNum[1] = 1;
short port = 0;
(byte)(port >> 8) = portNum[0];
(byte)(port) = portNum[1];
答案 0 :(得分:3)
你倒退了。您不能为表达式赋值,只能为变量赋值。
short port = (short) ((portNum[0] << 8) | (0xff & portNum[1]));
这假设portNum[0]
是高字节。
编辑:纠正转换以将负低字节视为无符号(例如,{1,-1}将转换为511而不是-1)。