szukam na SNMPBEECodec które można zobaczyć w tym location
W szczególności szukam w funkcji encodeLength()
fragment jestem zainteresowanyDlaczego Math.floor() używana zamiast podziału całkowitej w BER Codec
int numBytes = 0;
int temp = length;
while (temp > 0)
{
++numBytes;
temp = (int)Math.floor(temp/256);
}
(od Drexel SNMP library).
Chciałbym wiedzieć, dlaczego jest używany Math.floor()
, a nie tylko prosty podział na liczby całkowite, taki jak temp/256
. Wydaje się, że prosty podział na liczby całkowite dałby taki sam wynik. Czy istnieje różnica techniczna?
@EJP: Nie, ogólnie może istnieć dobry techniczny powód takiego kodu. Zrozumienie tego powodu może być bardzo interesujące. Jednak tak nie jest. Jednak dowiesz się tylko, pytając, czy nie znasz siebie. – sleske
Nie są one ściśle równoważne: http://stackoverflow.com/questions/10457208/java-how-do-i-perform-integer-division-that-rounds-towards-infinity-rather-tha Jednak ponieważ temp jest> 0 w twoim przykładzie jest to odpowiednik. – assylias
Powodem, dla którego o to poprosiłem, było to, że biblioteka Drexel jest bardzo popularna dla SNMP. Chciałem wiedzieć, czy było coś oczywistego, czego mi brakowało. Wydaje się nie być – jogabonito