gpt4 book ai didi

Java readUnsignedShort() 解释

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

有人可以解释一下下面的代码片段吗?

 methodAttributeLength = (long)dis.readUnsignedShort() << 16 | dis.readUnsignedShort();

我在 java doc 中检查了这一点。但我不明白。我知道什么是 java.io.DataInputStream.readUnsignedShort() 方法确实如此。但问题是 <<16东西。

最佳答案

DataInputStream#readUnsignedShort返回 int花费 32 位,但是 short类型花费 16 位。

int << 16将低 16 位移至高 16 位并填充 0在低16位。例如:

int value = 0b11111111000000001000000011111111;
^---------------
int high = 0b10000000111111110000000000000000;
// high == value << 16

在本例中,|运算符是将高位和低位连接在一起。例如:

int high  = 0b10000000111111110000000000000000; 
int low = 0b00000000000000001000000000000001;
int value = 0b10000000111111111000000000000001;
// value == high | low;

另一方面,您的协议(protocol)保存了 int一分为二short s 是一个高 short和低short 。上面的代码是 int两个值 short s。

更多详情可以查看bitewise operatorsshift operators .

关于Java readUnsignedShort() 解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44094526/

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