gpt4 book ai didi

java - 为什么在 BER 编解码器中使用 Math.floor() 而不是整数除法

转载 作者:太空狗 更新时间:2023-10-29 22:37:18 29 4
gpt4 key购买 nike

我正在查看可以在 location 上看到的 SNMPBEECodec
特别是我正在查看函数 encodeLength()
我感兴趣的片段

        int numBytes = 0;
int temp = length;
while (temp > 0)
{
++numBytes;
temp = (int)Math.floor(temp / 256);
}

(来自 Drexel SNMP library)。

我想知道为什么使用 Math.floor() 而不是像 temp/256 这样的简单整数除法。似乎简单的整数除法会给出相同的结果。还是有技术差异?

最佳答案

回答您问题的技术部分:

使用 math.floor() 是多余的:temp/256 是一个整数(根据 Java 的整数运算规则),使用 Math.floor( ) 对整数毫无意义。您可以简单地使用 temp/256

如果不阅读他们的想法,就无法回答作者为什么这样做。作者可能只是对 Java 中的除法行为感到困惑,并决定“谨慎行事”——但这只是猜测。

关于java - 为什么在 BER 编解码器中使用 Math.floor() 而不是整数除法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14454661/

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