मैं SNMPBEECodec जो इस location
विशेष रूप से देखा जा सकता है पर देख रहा हूँ मैं समारोह encodeLength()
एक टुकड़ा मैं में दिलचस्पी से देख रहा हूँ संख्या में पूर्णांक विभाजन के स्थान पर प्रयोग क्यों हैMath.floor() कोडेक
int numBytes = 0;
int temp = length;
while (temp > 0)
{
++numBytes;
temp = (int)Math.floor(temp/256);
}
(Drexel SNMP library से)।
मैं जानना चाहता हूं कि Math.floor()
का उपयोग temp/256
जैसे साधारण इंटीजर डिवीजन के बजाय क्यों किया जाता है। ऐसा लगता है कि सरल पूर्णांक विभाजन एक ही परिणाम देगा। या क्या कोई तकनीकी अंतर है?
@EJP: नहीं, सामान्य रूप से ऐसे कोड के लिए एक अच्छा तकनीकी कारण हो सकता है। इस कारण को समझना बहुत दिलचस्प हो सकता है। हालांकि, ऐसा कोई मामला नहीं है। हालांकि, आप केवल यह पूछकर पता लगाते हैं कि आप खुद को नहीं जानते हैं। – sleske
वे कड़ाई से समकक्ष नहीं हैं: http://stackoverflow.com/questions/10457208/java-how-do-i-perform-integer-division-that-rounds-towards-infinity-rather-tha हालांकि temp है> 0 आपके उदाहरण में यह बराबर है। – assylias
कारण मैंने यह पूछा क्योंकि ड्रेक्सेल लाइब्रेरी एसएनएमपी के लिए एक बहुत लोकप्रिय है। मैं जानना चाहता था कि क्या कुछ स्पष्ट था कि मैं गायब था। ऐसा लगता है कि – jogabonito