हाल ही में एक परियोजना पर, मुझे बाइट्स से किलोबाइट्स किबिबाइट में परिवर्तित करने की आवश्यकता थी । कोड काफी सीधा था:
var kBval = byteVal / 1024;
यह लिखने के बाद, मुझे काम करने का बाकी काम मिल गया और आगे बढ़ गया।
लेकिन बाद में, मुझे आश्चर्य हुआ कि क्या मैंने अपने कोड के भीतर एक जादुई संख्या को एम्बेड किया था । मेरा एक हिस्सा कहता है कि यह ठीक था क्योंकि संख्या एक स्थिर स्थिरांक है और इसे आसानी से समझा जाना चाहिए। लेकिन मेरे एक और हिस्से को लगता है कि अगर यह एक परिभाषित स्थिरांक में लिपटा होता तो सुपर स्पष्ट होता BYTES_PER_KBYTE
।
तो क्या ऐसी संख्याएँ हैं जो अच्छी तरह से ज्ञात स्थिरांक हैं जो वास्तव में जादुई हैं या नहीं?
संबंधित सवाल:
एक संख्या एक जादू नंबर कब है? और क्या कोड के हर नंबर को "मैजिक नंबर" माना जाता है? - समान हैं, लेकिन जितना मैं पूछ रहा हूं उससे कहीं अधिक व्यापक प्रश्न हैं। मेरा सवाल अच्छी तरह से ज्ञात निरंतर संख्याओं पर केंद्रित है जो उन सवालों में संबोधित नहीं है।
जादू की संख्या को खत्म करना: "ना" कहने का समय कब है? भी संबंधित है, लेकिन एक निरंतर संख्या एक जादू की संख्या है या नहीं, इसका विरोध करने पर ध्यान केंद्रित किया जाता है।
1024
, क्योंकि अन्यथा आपकी देव टीम यह सब समय व्यतीत करने के बारे में बहस करेगी यह "किलोबाइट्स" या "किबिबाइट्स" है।
#define
KIBI
1024 के रूप में 1024, MEBI
1024 * 1024 के रूप में है
ZERO=0, ONE=1, TWO=2
और जब प्रोग्राम अन्य भाषाओं में पोर्ट किए जाते हैं (या प्रोग्रामर अपनी भाषा को स्विच करते समय व्यवहार नहीं बदलते हैं) तो आप इसे वहां भी देखेंगे और आपको प्रार्थना करनी होगी कि इसे कभी भी किसी को न बदलें ONE=2
...
FOUR_HUNDRED_FOUR = 404
। मैंने एक और परियोजना पर काम किया, जहाँ वे शाब्दिक के बजाय निरंतर तार का उपयोग करने के बारे में उग्रवादी थे, इसलिए उनके पास कोड में दर्जनों लाइनें थीं जो दिखती थीं,DATABASE = "database"