Php परिवर्तित स्ट्रिंग में बाइनरी विकल्प
एक स्ट्रिंग बाइट्स का सिर्फ एक अनुक्रम है, इसलिए इसका वास्तव में PHP में बायनेरी डेटा है। आप वास्तव में क्या करने की कोशिश कर रहे हैं यदि आप अपने डेटाबेस में द्विआधारी डेटा को संग्रहीत करना चाहते हैं, तो समस्या अक्सर आपके डेटाबेस में कॉलम की परिभाषा होती है। PHP द्विआधारी डेटा और तार के बीच अंतर नहीं करता, लेकिन डेटाबेस करते हैं उदाहरण के लिए MySQL में आपको बायिनरी में बाइनरी डेटा को संग्रहीत करना चाहिए। VARBINARY या ब्लॉब कॉलम दूसरा विकल्प आपके PHP स्ट्रिंग base64encode के लिए होगा और इसे डेटाबेस में कुछ VARCHAR या TEXT कॉलम में संग्रहीत करेगा। लेकिन ध्यान रखें कि जब base64encode उपयोग किया जाता है तो तार की लंबाई बढ़ जाएगी। आपके हैश पहले से ही द्विआधारी है और आपके डेटाबेस के साथ उपयोग करने के लिए तैयार है हालांकि आपको इसे डेटाबेस प्रारूप परिभाषा की अपेक्षा प्रारूप में परिवर्तित करना होगा। PHP में कोई स्ट्रिंग (5.3 तक) एक बाइनरी स्ट्रिंग है इसका अर्थ है कि इसमें केवल द्विआधारी डेटा शामिल है हालांकि पीएचपी 6 के साथ पिछली कम्पैक्टिबिलिटी के कारण आप पहले से ही अपनी स्ट्रिंग स्पष्ट रूप से बाइनरी के रूप में डाल सकते हैं: लेकिन यह केवल संगतता के कारणों के लिए है, आपके कोड में आप ऐसा कर सकते हैं: इसकी वजह कन्वर्ट अनावश्यक है बाकी का आश्वासन दिया है कि वह काम करता है। यह शायद एक मुद्दा है जो उन कमांडों को समझता है और डेटाबेस में वास्तविक रूप से स्ट्रिंग एन्कोडिंग क्या है, आपके द्वारा खोज की गई खोज से आपको पता चलता है कि आप द्विआधारी एन्कोडिंग बीटीडब्ल्यू की तलाश नहीं कर रहे हैं, तो आप आमतौर पर इसे एन्कोडिंग के लिए इसका उपयोग करते हैं और डाटाबेस अच्छी तरह से समर्थन नहीं करता है और फिर आप इसके लिए खोज करने के लिए डेटाबेस का उपयोग करें बस केह रहा हू। ndash hakre 7 मई 16 को 18:17 मैं सबसे निश्चित रूप से मानक पासवर्ड लाइब्रेरी में बनाए गए PHP, के साथ आने वाले सुझावों का उपयोग करने की सलाह दूँगा - ये उनका उपयोग कैसे करें इसका एक अच्छा उदाहरण है। उन लोगों के लिए जो ये जानने के लिए आते हैं कि बाइनरी स्ट्रिंग्स से दशमलव तक और पीछे कैसे जाए, नीचे कुछ अच्छे उदाहरण हैं बाइनरी स्ट्रिंग को दशमलव के चेकर्स में परिवर्तित करने के लिए आप ऐसा कुछ कर सकते हैं उपरोक्त आउटपुट: दशमांश को चारक्रिंग के लिए परिवर्तित करने के लिए आप यह कर सकते हैं: उपरोक्त आउटपुट: उत्तर 11 जून को 14:11 उत्तर: PHP में स्ट्रिंग्स हमेशा ब्लॉब्स हैं I तो आप अपने डेटाबेस BLOB के लिए मान रखने के लिए एक स्ट्रिंग का उपयोग कर सकते हैं। इस सब चीज़ों का आधार-रूपांतरित और इतने पर उस ब्लॉब को प्रस्तुत करने के साथ क्या करना है यदि आप अपने ब्लॉब का एक अच्छा मानव-पठनीय प्रतिनिधित्व चाहते हैं, तो यह इसमें शामिल बाइट्स को दिखाने के लिए समझ में आता है, और शायद दशमलव के बजाय हेक्स का उपयोग करना है। इसलिए, स्ट्रेट 41 42 43 बाइट सरणी को प्रस्तुत करने का एक अच्छा तरीका है जो सी में होगा, लेकिन यह स्पष्ट रूप से उन बाइटों का प्रतिनिधित्व करने का एक अच्छा तरीका नहीं है। स्ट्रिंग एबीसी एक कुशल प्रतिनिधित्व है, क्योंकि यह वास्तव में एक ही ब्लॉब ( केवल इस मामले में इतना बड़ा नहीं है)। व्यवहार में आप आम तौर पर आपके ब्लॉब को ऐसे फ़ंक्शन से प्राप्त करेंगे जो स्ट्रिंग लौटते हैं - जैसे हैशिंग फ़ंक्शन, या फ़्रेड जैसे अन्य बिल्ट-इन फ़ंक्शन। दुर्लभ मामलों में (लेकिन ऐसा कुछ दुर्लभ नहीं है, जब केवल चीजों को उच्छृंखल करने की कोशिश कर रहे हैं) कि आपको कुछ हार्ड-कोडित बाइट्स से एक स्ट्रिंग बनाने की आवश्यकता है, मैं हेक्स स्ट्रिंग को परिवर्तित करने की तुलना में अधिक कुशलता के बारे में नहीं जानता है जिसे अक्सर में बाइनरी स्ट्रिंग कहा जाता है PHP: यदि आप vardump (डेटा) यह आपको स्ट्रिंग दिखाएगा (3) एबीसी क्योंकि 0x41 65 दशमलव A (मूलतः सभी एन्कोडिंग में) बाइनरी डेटा को स्ट्रिंग के रूप में व्याख्या करते हुए देखकर, यह बिल्कुल सहज ज्ञान युक्त नहीं है, इसलिए आप डीबगिंग को आसान बनाने के लिए एक बुनियादी आवरण बनाना चाहते हैं। एक ऐसा संभव आवरण यह है कि मैं फ्लाई पर पकाया जाता हूं, और संभवतः आपके आवरण के लिए सिर्फ एक प्रारंभिक बिंदु है। लेकिन यह विचार भंडारण के लिए एक स्ट्रिंग का उपयोग करना है क्योंकि जब आप सामग्री की जांच करना चाहते हैं, तो डीबगर वॉचेएवल्यूलेशन में उपयोग करने के लिए एआरआरए () जैसे तरीकों को प्रदान करते हुए यह PHP में उपलब्ध सबसे प्रभावी संरचना है। बेशक आप इसके बजाय एक बिल्कुल सीधा PHP फ़्लिकर सरणी का उपयोग कर सकते हैं और इसे किसी स्ट्रिंग में पैक कर सकते हैं, जब कुछ ऐसी चीज़ों के साथ इंटरफ़ेस होता है जो द्विआधारी डेटा के लिए तार का उपयोग करता है। जिस डिग्री पर आप वास्तव में ब्लॉब संशोधित करने जा रहे हैं, यह आसान साबित हो सकता है, और यद्यपि यह जगह कुशल नहीं है मुझे लगता है कि आपको कई कार्यों के लिए स्वीकार्य प्रदर्शन प्राप्त है I कार्यक्षमता को वर्णन करने के लिए एक उदाहरण: एक बाइनरी स्ट्रिंग को बिट अनुक्रम फ़ंक्शन BinString2BitSequence (mystring) mybitseq end strlen (mystring) के लिए (i i i lt end i) mybyte decbin (ord (mystring i) के लिए कन्वर्ट करने के लिए एक फ़ंक्शन बिट स्ट्रिंग mybitseq करने के लिए उपस्ट्रोक (00000000. 0. 8 - स्ट्रेलन (मायबाइट))। मायबाइट 8 बिट पैक रिटर्न मायबेटेक ईको बिनस्ट्राइंग 2 बिट स्यूक्वेन्स (एबीसीडीईएफ) ओयूटीपीटीटी 00000001010000001001000011010001000100010101000110 बीसीएमएएट एक्सटेंशन का इस्तेमाल करने वाले द्विआधारी रूपांतरण के लिए दशमलव। फ़ंक्शन BCDec2Bin (इनपुट) आउटपुट (pregmatch (डी। इनपुट)) जबकि (इनपुट 0) आउटपुट। सीआरआर (48 (इनपुट 2)) इनपुट बीसीडीआईव (इनपुट .2) आउटपुट स्ट्र्रेव (आउटपुट) रिटर्न (आउटपुट) आउटपुट। 0) यह केवल बेस -10 से बेस-2 में बीसीएमएथ (मनमाने ढंग से सटीक गणना) का उपयोग करके परिवर्तित होगा। यह भी देखें: बाइंडेक दस्तावेज़ पर मेरी बीसीबीन 2 डीसीके समारोह आनंद लें, नाइट्रोजन हाय दोस्तों, मैं एक दिन के लिए संघर्ष किया, जिसमें बड़ी संख्या में द्विआधारी में परिवर्तित किया गया, विंडोज़ प्लेटफॉर्म पर। अंत में बीसीमैथ फ़ंक्शन के साथ यह मेरे लिए काम किया गया है। इसे बीसीमैथ फ़ंक्शंस के साथ काम करने के लिए मिला, 32 बिट विंडो मशीन के लिए 64 बिट पर काम करता है, बेस 2 बिन्नर अगर (प्रीगमैच (0-9, स्ट्रिंग)) के लिए (i0 स्ट्रिंगर (आई) i) डीसीएनआरआई और डिकर्नस्ट्रिंग जबकि (डीएनएनआरजीटीबेस) जबकि (बीकॉम्प (डीसीएनआर, आधार) 1) यदि ((डीसीएनआर-बेस) gt0) यदि (बीकॉम्प (बीसीएससीबी (डीसीएनआर, बेस)। 0) 1) डीसीडीडीएनआर-बेस डीएनआरआरबीसीएसयूबी (डीसीएनआर, बेस) बिन्नर .1 बेसबेससेज बेसबसीडीव (आधार, 2) अन्यथा ((डीएनएनआर-बेस) एलटीएफ) (बीकॉम्प (बीसीएससीबी (डीसीएनआर, बेस)। 0) -1) बिन्नर 2.0 आधारबेसई बेसबसीडीव (आधार, 2) अन्यथा ((डीएनएनआर-बेस) 0) अन्यथा (बीकॉम्प (बीकसब ( (बेस, 1) 1) binnr.0 basebase2 basebcdiv (आधार, 2) यहां आप 32bit के बजाय मानक डीबीबीबी लेफ्टिनेंट के साथ 64 बिट को परिवर्तित कर सकते हैं। फ़ंक्शन बड़ा डीसीबीन (डीसी, डबलवार्ड 1) ईआरजीएजी बाकी आराम करो dec2147483648 अगर (restlt0) बाकी 2147483648 एर्ग स्ट्रपैड (डीबीबीन (बाकी), 31,0, STRPADLEFT).EG dec (dec-rest) 2147483648 जबकि ((decgt0) ampamp ((declt1)) ) के लिए echo ltpregt (i1.52147483647.0-10ilt1.52147483647.010i) गूंज डीईसी:। i बिन:.बिगडीसीबीन (i, 2).ltbrgt echo ltpregt gt ltphp प्रिंट bindecValues (1023) फ़ंक्शंस bindecValues (दशमलव। झूठी झूठी उलटा झूठी) 1. यह फ़ंक्शन दशमलव लेता है, इसे द्विपदीय में कनवर्ट करता है और प्रत्येक के दशमलव मान देता है बाइनरी स्ट्रिंग में व्यक्तिगत बाइनरी मान (1) आप बड़े दशमलव मानों का उपयोग कर सकते हैं यदि आप उन्हें स्ट्रिंग के रूप में फ़ंक्शन पर पास करते हैं। दूसरा वैकल्पिक पैरामीटर आउटपुट को उलट देता है। 3. तीसरे वैकल्पिक पैरामीटर में द्विआधारी स्ट्रिंग उलटी होती है, जैसे 101 010 हो जाता है। - याहू डॉट कॉम बिन डीबीन (दशमलव) पर अंधेरेशद 3 यदि (व्युत्क्रम) बिन स्ट्र्रेलेबल (0. एक्स बिन) बिन स्ट्र्रेलेज़ (1. 0. बिन) बिन स्ट्र्रेलेबल (एक्स। 1 बिन) के लिए कुल स्ट्रेलन (बिन) (i i i एलटी कुल i) अगर (बिन 0) बिन 2 स्ट्रपैड (बिन, कुल - i) सरणी (स्टॉक। बिन्डेक (bin2)) रिवर्स। आरएसओर्ट (स्टॉक): सॉर्ट (स्टॉक) रिटर्न फ्तोलोड (, स्टॉक) gt मुद्रित परिणाम है 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 मुझे लगता है कि यह सबसे अच्छा कार्य है। (लगभग 250 या कुछ और) जब तक (i gt 0) अगर (इंट पावर (2. आई) लेफ्टिनेंट 0) बिनर 0। बिनर और बिनियर 1. बिनियर इंट इंटे-पाउ (2. आई) मिलेल जीटी होल सावधानी पूर्णांक के साथ द्विआधारी-वार परीक्षणों की कोशिश करना: एफएफएफएफएफएफएफ कमांड: php - r प्रिंट (डीबीबीएन (42 9 4967295)। एन) परिणाम: 11111111111111111111111111111111 C3E 9CAC8 आदेश: php - r प्रिंट (डीबीबीन (3286878920)। एन) परिणाम: 11000011111010011100101011001000 निर्दिष्ट करने की परवाह किए बिना (इंट) , bitwise और: कमांड: php - r प्रिंट ((int) (3286878 9 20 amp 4294967295) का उपयोग करके। n) परिणाम: -1008088376 (इंट) अब अपेक्षित परिणाम होगा (प्रदर्शन प्रभाव लगता है) कमांड: php - r print (bindec n) परिणाम: 3286878920 (फ़्लोट) अतिरिक्त नोट: यदि आप बिटवर्ड और एक ही लंबाई के 1-बिट अनुक्रम के साथ कुछ यादृच्छिक बिट्स, तो अपेक्षित परिणाम एक ही यादृच्छिक बिट अनुक्रम होता है अपरिवर्तित। यदि आप इसे तीव्रता से तुलना करने के लिए पूर्णांक दुनिया में रखना चाहते हैं, तो आप अपने परिणाम को हस्ताक्षरित पूर्णांक आकार सीमा के लिए गड़बड़ कर सकते हैं। अधिकतम मान जिसे आप इच्छित परिणाम के लिए उपयोग कर सकते हैं (7FFFFFFF - या पूर्णांक 2147483647) अधिकतम आंशिक रूप से पूर्णांक 32-बिट (प्लेटफ़ॉर्म-आश्रित) मान का आधा। स्ट्रिंग को बाइनरी को मूल रूप से पोस्ट किया गया है जो एचएमएससीट द्वारा पोस्ट किया जाएगा, चरित्र तार क्षमा करें, मुझे लगता है कि मैं थोड़ी अधिक स्पष्ट हो सकती थी। मैं ओरेकल में एक स्रोत तालिका से एक SQL सर्वर तालिका में डेटा निकालने के लिए। ओरेकल को केस-सेंसिटिव के रूप में सेट किया गया है, जबकि एसक्यूएल को केस-असंवेदनशील होने के लिए सेट किया गया था तालिका को आबाद करने के लिए और सही पीके (ओरेकल से) को बनाए रखने के लिए, मुझे कॉलम को स्ट्रिंग से बाइनरी में कनवर्ट करना होगा (मैं एक अलग कॉलम में मूल स्ट्रिंग की एक प्रति रखता हूं)। इस प्रकार मुझे बाइनरी में 50145 जे और बाइनरी में 50145 जे की जरूरत है क्योंकि अलग-अलग मान मुझे लगता है कि एएससीआईआई (चार) केवल एक ही चरित्र पर काम करेंगे। क्या मैं गलत है ASCII केवल एक ही समय में एक अक्षर के साथ काम करता है, लेकिन इसके द्वारा लौटा परिणाम जोड़ने के लिए लूप के भीतर ASCII को खोलने से रोकने के लिए कुछ भी नहीं है वास्तविक अंतर डेटा संग्रहण मूल्यों के साथ आपको मानवीय पठनीयता के लिए आम तौर पर प्रदर्शित करने की आवश्यकता है। आपने अब कुछ कम स्पष्ट कर दिया है (कम से कम मेरे लिए) quot बंटरीक्वाट इस मामले में वास्तविकता के अपने दृष्टिकोण के लिए गणना नहीं करता है quotBinary numberquot ओएनएसीएफ़ जेरोस का एक STRING (डेटा टाइप कैरेक्टर) किसी तरह मुझे लगता है कि ऐसा नहीं है जो आप का निर्माण करना चाहते हैं ध्यान रखें कि जब चरित्र स्ट्रिंग quot 50145Jquot वास्तव में amp है वास्तव में BINARY में परिवर्तित होता है यह एक आरटीआई बन जाता है जो कि 48 अक्षरों का लम्बा बराबर का प्रश्न है- यदि दोनों 50145 जे और 50145 जे दोनों डेटाटिप VARCHAR2 की एक ओरेकल तालिका के भीतर प्राथमिक कुंजी हैं, तो डेटैट टाइप क्या होगा एसक्यूएल-सर्वर में पीके का और कैसे दो मान अलग होंगे मैं इसे करने के लिए किसी भी ऑरेकल फ़ंक्शंस के बारे में नहीं जानता, शायद यह इसके बजाय मदद कर सकता है। यह फ़ंक्शन इसे एक एएससीआईआई स्ट्रिंग के रूप में लौटा देगा (कुछ द्विआधारी प्रतिनिधित्व से छोटा)। फलन टोससीआई (वीओएआरएआर 2 में स्रोत में) बनाते हैं या बदलते हैं। ResultString varchar2 (381) के रूप में 3 स्रोत की संभव लंबाई 1 में शुरू होती है। लंबाई (इनसॉर) पाश परिणामस्वरूप: रिजल्ट स्ट्रिंग ट्रिम (tochar (ascii (substr (स्रोत 1। )), 00 9) अंत पाश वापसी परिणामस्वरूप अंत आदर्श रूप से आप इसे एक पैकेज में डाल दिया जाएगा और ओरेकल प्रदर्शन के अनुसार बुद्धिमान सहायता के लिए एक प्रतिबंध जोड़ने। तालिका से टोसीसी (स्तंभ नाम) का चयन करें कृपया मुझे प्रश्नों के साथ सीधे ईमेल न करें Ive शायद पब से सिर्फ घर गया और मेरे जवाब की विवेक की गारंटी नहीं दे सकता है वास्तव में, मैं नहीं मान सकता कि मैं वास्तव में इसे घर बना देता हूं। वर्णन पैक को द्विआधारी स्ट्रिंग में प्रारूप के अनुसार दिया गया था। इस समारोह के लिए विचार पर्ल से लिया गया था और सभी स्वरूपण कोड पर्ल के समान काम करते हैं। हालांकि, ऐसे कुछ स्वरूपण कोड हैं जो कि Perl039s quotuquot प्रारूप कोड के रूप में गायब हैं। ध्यान दें कि हस्ताक्षरित और अहस्ताक्षरित मानों के बीच का अंतर केवल फ़ंक्शन अनपैक () को प्रभावित करता है जहां फ़ंक्शन पैक () हस्ताक्षरित और अहस्ताक्षरित प्रारूप कोड के लिए समान परिणाम देता है पैरामीटर प्रारूप स्ट्रिंग में एक वैकल्पिक पुनरावर्तक तर्क के बाद प्रारूप कोड होते हैं। पुनरावर्तक तर्क या तो एक पूर्णांक मान या इनपुट डेटा के अंत में दोहरा सकते हैं। ए, ए, एच, एच के लिए दोहराया गिनती निर्दिष्ट करती है कि एक डाटा तर्क के कितने अक्षरों को लिया जाता है, क्योंकि यह पूर्ण स्थिति है जहां अगले डेटा डालना है, बाकी सब के लिए पुनरावृत्ति गिनती निर्दिष्ट करती है कि कितने डाटा तर्क खपत और पैक किए जाते हैं परिणामस्वरूप बाइनरी स्ट्रिंग में वर्तमान में लागू स्वरूप हैं: एक सहायक वर्ग को पूर्णांक को द्विआधारी स्ट्रिंग में बदलने और इसके विपरीत। फ़ाइलों या सॉकेट्स से पूर्णांक लिखने और पढ़ने के लिए उपयोगी वर्ग के आंतरिक अवस्था सार्वजनिक स्थिर कार्य int8 (i) रिटर्न आईएनआईटी (i) पैक (सी। आई) अनपैक (सी। आई) 1 सार्वजनिक स्थिर कार्य uInt8 (i) रिटर्न आईएनएसटी (i) पैक (सी। I)। अनपैक (सी। I) 1 सार्वजनिक स्थिर कार्य int16 (i) रिटर्न आईएनएसटी (i) पैक (एस। i) अनपैक (एसआई) 1 सार्वजनिक स्थिर कार्य यूआईएनटी 16 (i। एंडियननेस फॉल्स) एफ आईएनआईटी (i) पैक। रिटर्न आईसरे अनपैक करें (i) मैं 1 मैं सार्वजनिक स्थिर कार्य int32 (i) रिटर्न आईएनएसटी (i) पैक (एल आई) अनपैक (एलआई) 1 सार्वजनिक स्थिर कार्य यूआईएनटी 32 (i। एंडियननेस फॉल्स) एफ आईएनआईटी (i) पैक। रिटर्न आईसरे अनपैक करें (i) मैं 1 मैं सार्वजनिक स्थिर कार्य int64 (i) रिटर्न आईएनएसटी (i)। पैक (q। i)। अनपैक (q. i) 1 सार्वजनिक स्थिर कार्य uInt64 (i। endianness false) f isint (i)। पैक। रिटर्न आईसरे अनपैक करें (i) मैं 1 i gt उपयोग का उदाहरण: ltphp हैडर (सामग्री-प्रकार: टेक्स्टप्लेन) में शामिल हैं (इंटेल्पर. एफ़पी) गूंज गूंज। uInt8 (0x6b) PHPEOL k ईको एंटेल्पर uInt8 (107) PHPEOL k ईको एंटेल्पर uInt8 (x6b) PHPEOL। PHPEOL 107 गूंज गूंज uInt16 (4101) PHPEOL x05x10 ईको एंटेल्पर uInt16 (x05x10) PHPEOL 4101 प्रतिध्वनि उत्कर्ष uInt16 (x05x10 सच)। PHPEOL। पीपीईओएल 1296 गूंज गूंज uInt32 (2147483647) PHPEOL xffxffxffx7f गूंज गुणक uInt32 (xffxffxffx7f) PHPEOL। PHPEOL 2147483647 नोट: PHP की प्रतिलिपि बनाने के 64-बिट बिल्ड के साथ इस का परीक्षण करें। uInt64 (9223372036854775807) PHPEOL xffxffxffxffxffxffxffx7f गूंज गुणक। uInt64 (xffxffxffxffxffxffxffx7f) PHPEOL। PHPEOL 9223372036854775807 कोडर्स का उदाहरण मूल रूप से बाइंडेक () और डीबीबीन () का विवरण है, पैक नहीं () और अनपैक ()। एक स्ट्रिंग बाइनरी अभिव्यक्ति को अपने बाइनरी स्ट्रिंग समकक्ष में और इसके विपरीत में कनवर्ट करने के लिए कुछ कोड है। (यदि पैकेटपैक ने अब प्रारूप कोड की पेशकश की है तो भी सरल हो जाएगा।) Ltphp फ़ंक्शन bin2bstr (इनपुट) एक बाइनरी अभिव्यक्ति (जैसे 100111) को एक बाइनरी-स्ट्रिंग में कनवर्ट करें यदि (इस्तरीरिंग (इनपुट)) रिटर्न नल सैनिटा चेक पैक को स्ट्रिंग रिटर्न पैक में एच। बेस कन्वर्ट (इनपुट 2. 16)) फ़ंक्शन bstr2bin (इनपुट) द्विआधारी-स्ट्रिंग का बाइनरी प्रस्तुतीकरण (ifstring (इनपुट)) रिटर्न रिक्त सेंसिटी चेक एक हेक्साडेसिमल स्ट्रिंग मान अनपैक (एच इनपुट) के रूप में खोलें आउटपुट बाइनरी प्रतिवेदन वापसी आधार कन्वर्ट (मान 1, 16. 2) रिटर्न स्ट्रिंग (3) एबीसी vardump (bin2bstr (01000001 01000010 01000011)) रिटर्न स्ट्रिंग (24) 010000010100001001000011 vardump (bstr2bin (एबीसी)) gt हालांकि 64-बिट आर्किटेक्चर इंफ्राल (6123456789) 6123456789, और स्प्रिंटफ (बी, 5000000000) 100101010000001011111001000000000 पैक कुछ भी इसे 64-बिट के रूप में पारित नहीं करेगा। यदि आप 64-बिट पूर्णांक पैक करना चाहते हैं: एलटीपीपी बड़ा 5000000000 0xffffffff00000000 0x0000000000000000 सही 0x00000000ffffffff एल (बड़ा amp छोड़ दिया) gtgt 32 आर बड़ा amp सही अच्छा पैक (एनएन। आर। आर) urlsafe strreplace (सरणी (।), सरणी (- ।), base64encode (अच्छा)) पुनर्निर्माण: unurl strreplace (सरणी (-।), सरणी (।), urlsafe) बाइनरी base64decode (unurl) सेट अनपैक (एन 2। टीएमपी) प्रिंटर (सेट) मूल सेट 1 एलटीएलटी 32 सेट 2 गूंज मूल। rn gt परिणाम: Array (1 gt 1 2 gt 705032704) 5000000000, लेकिन केवल 64-बिट सक्षम मशीन और PHP distro पर। ये दो फ़ंक्शन द्विआधारी स्ट्रिंग के बीच रूपांतरण की अनुमति देता है और पूर्ण लंबाई पर हस्ताक्षर किए जाने की संभावना के साथ बिट लंबाई देता है। उपयोग: एलटीपीपी इको सीआई 2 बीन (-10 .32) 1111111111111111111111111111011111111111111111110110 इको सीआईबीबीन (10. 32) 0000000000000000000000000000001010 ईको बिन 2 एसएसआई (11111111111111111111111111110110. 32) - 10 इको बिन 2si (000000000000000000000000000000001010.32) 10 द्विआधारी फ़ंक्शन सीआईबीबीएन (सीआईटी बिट्स) पर हस्ताक्षरित पूर्णांक (एसआई जीटी - पाउ (2 बीट्स -1) और सीटीटी पाउ (2 बीट्स -1)) अगर (सीजीटी 0) पॉजिटिव या शून्य बिन बेस कन्वर्ट (सी। 2) पैड टू बिट बिट बेंगलेंथ स्ट्रेलन (बिन ) यदि (binlength lt बिट्स) बिन strrepeat (0 बिट्स - बिनलैम्बत)। बिन अन्य नकारात्मक सी-सी-पाउ (2. बिट्स) बिन बेसकॉन्ट् (सी। 10) 2 बिनलिम्थ स्ट्रेलन (बिन) अगर (बेंगलिन जीटी बिट्स) बिन स्ट्र्रेपीट (1. बीट्स-बिनलाइन) बिन रिटर्न बिन बाइनरी पर हस्ताक्षर किए इंटीजर फ़ंक्शन bin2si (बिन 32 बिट) अगर (स्ट्रेलन (बिन) बिट्स) यदि (substr (bin 0. 0 1) 0) पॉजिटिव या शून्य सी बेस कन्वर्ट (बिन 2. 10) अन्य नकारात्मक सी baseconvert (बिन 2. 10) सी - (पाउ (2. बिट्स) - सी) रिटर्न si gt इस तरह से मैं base2 को base64 में परिवर्तित करने के लिए baseconvert का उपयोग करता था क्योंकि baseconvert base64 का समर्थन नहीं करता बेस 64 लंबे स्ट्रिंग्स के लिए काम नहीं करते, जो मैं एक समय में 1 बाइट को परिवर्तित करने के लिए आशा करता हूं कि यह किसी के आधार 2to64 (base2) फ़ंक्शन करता है अगर (remainbits strlen (base2) 8) base2 strrepeat (0,8-रहबिट्स) base64 NULL के लिए (i0iltstrlen (base2) i8) base16 base64to2 (बेस 64) सूची (बेस 16) अनपैक (एच 0, बेस 64 डीएक्ोड (बेस 64)) बेस 2 पर बेसिन (आधार (2, 2, 2), बेसफिक्स शून्य के लिए (i0iltstrlen (बेस 16) i) बेस 2 sprintf (04d, baseconvert (substr (base16, i, 1), 16,2)) वापसी 2 आधार अगर आप थोड़ा ओवरहेड दिमाग न करें तो igbinary-serialize का उपयोग करें। या इंटरेरे (एक ही व्यक्ति द्वारा) यदि आप एक थोड़ा प्रयोगात्मक पैकेज का उपयोग कर मन न डालें तो अलग-अलग बाइइटिबेट ऑर्डर आर्किटेक्चर के बीच डेटा साझा करने में समस्या हो सकती है। मुझे विश्वास नहीं है कि अगर आप सिगनलिज़ फ़ंक्शन फेंकना और फ़ंक्शन को अनसुलेट करना बहुत कठिन होगा, यदि आप सही अंतःस्राव के साथ अंकीय एरे को संचित करने के लिए igbinary से कोड को बाहर निकालते हैं। Igbinaryserialize32 और igbinaryunserialize32 को igbinary. c में देखते हुए यह intarray. c को उस कार्यक्षमता को कॉपी करना बहुत आसान होना चाहिए। यद्यपि एलटीएलटी0 को दूर ले जाएं, वह सिर्फ बेवकूफ है: पी
Comments
Post a Comment