इस प्रश्न के लिए एकदम सही समय। @isaacg ने आज एक नई सुविधा जोड़ी है, जो इस तरह की संख्या को बहुत कम करने की अनुमति देता है।
मूल तकनीक संख्या को आधार 256 में बदलने और इसे चार्ट में बदलने के लिए है। आप कोड का उपयोग करके ऐसा कर सकते हैं ++NsCMjQ256N
। फिर आप परिणामी स्ट्रिंग के साथ संयोजन का उपयोग कर सकते हैं C
, जो बिल्कुल विपरीत करता है (परिणाम को चार्ट में अंतर करने और आधार-256 नंबर के रूप में व्याख्या करने के लिए)। तो आपको 13 वर्ण मिलते हैं C"2ìÙ½}ü¶d"
:। कुछ वर्ण अनपेक्षित हैं।
लेकिन ध्यान दें कि मैंने 13 CHARS कहा, बाइट्स नहीं। अगर मैं वर्णों को कॉपी करता हूं और https://mothereff.in/byte-counter के साथ गणना करता हूं , तो यह 13 चार्ट और 18 बाइट्स कहता है। यह वर्णों के वर्ण कूटबन्धन के कारण है, जो कि डिफ़ॉल्ट रूप से UTF-8 है। और UTF-8 केवल 2 ^ 7 अलग-अलग 1-बाइट वर्ण की अनुमति देता है। हर चार c
के साथ ord(c) > 127
वास्तव में दो हो जाता है का उपयोग करके संग्रहीत बजाय एक के बाइट्स।
और यहाँ आओ @ isaacg की नई सुविधा खेलने में है। उसने UTF-8 से iso-8859-1 में डिफ़ॉल्ट कोड-प्रारूप को बदल दिया। iso-8859 केवल 1 बाइट के साथ 256 वर्णों का प्रतिनिधित्व कर सकता है। तो अब आप वास्तव में 13 BYTES तक पहुंच सकते हैं। यह केवल मानक कंपाइलर के साथ ही संभव है , यह ऑनलाइन कंपाइलर में काम नहीं करता है।
पहले आप इस स्क्रिप्ट का उपयोग करके संख्या को हेक्स-मान में बदलना चाहते हैं jdm.[2.Hd"0"jQ256
:। यह आपको देता है 12 32 ec d9 bd 07 7d fc b6 64
। बाद में एक हेक्स-एडिटर (जैसे कि लिनक्स के लिए हेक्सेडिट) का उपयोग करके उन नंबरों को अपने कोड-फाइल में कॉपी करें।
नोटिस:
- स्पष्ट रूप से आप
"
अंत में हटा देते हैं , अगर स्ट्रिंग कोड का अंतिम भाग है।
- यह केवल तभी काम करता है जब आप संख्याओं के आधार-256 प्रतिनिधित्व में कोई
34
(बाइट 22
) न हो, क्योंकि यह "
चार है और स्ट्रिंग को समाप्त कर देगा। हालांकि बचना काम करता है ( 5C 22
)।
- Btw, जब आप एक हेक्स-संपादक के साथ एक फ़ाइल खोलते हैं, तो आप संभवतः बाइट
0A
या 0d 0a
अंत में देखेंगे , जिसे आप हटा सकते हैं। यह केवल रेखा के अंत को इंगित करता है।