2009-11-14 23 views

उत्तर

-7
$number = decbin(59); 
echo $number . "\n"; //111011 
$number = bindec($number); 
echo $number . "\n"; //59 

decbin(int $number): एक स्ट्रिंग दी गई संख्या तर्क का एक द्विआधारी प्रतिनिधित्व युक्त देता है।

bindec(string $bstring): bstring तर्क में द्विआधारी संख्या के दशमलव समतुल्य देता है।

+0

यह गलत प्रश्न का उत्तर दे रहा है ... दिया गया, प्रश्न अच्छी तरह से लिखा नहीं गया था, लेकिन यह "बाइनरी स्ट्रिंग" प्रकार से संबंधित है जैसा कि PHP में 'b'xxxx' वाक्यविन्यास में उपयोग किया गया है, न कि बाइनरी संख्या का प्रतिनिधित्व किया गया है एक पाठ स्ट्रिंग के रूप में। –

15

पीएचपी language reference यूनिकोड तार और देशी द्विआधारी तार के बीच भेद, b'this के साथ चिह्नित वर्णन करता है एक द्विआधारी स्ट्रिंग '

यह द्विआधारी संख्या का प्रतिनिधित्व करने की एक विधि प्रतीत नहीं करता है।

संकेत "। पीएचपी 5.2.1 के बाद से उपलब्ध है हालांकि, यह केवल प्रभाव पड़ेगा PHP के रूप में 6.0.0"

+0

आपके उत्तर का स्रोत वास्तव में PHP दस्तावेज़ में उपयोगकर्ता टिप्पणी है: http://php.net/manual/fr/language.types.string.php#93576 यह बहुत विश्वसनीय नहीं है। –

+0

यहां एक और अधिक आधिकारिक दस्तावेज है: https://web.archive.org/web/20090403051843/http://us2.php.net/manual/en/function.is-binary.php –

3

"बाइनरी स्ट्रिंग" क्या हम php में अभी है - बाइट्स का अनुक्रम , जो (सी भाषा के विपरीत) में नूल बाइट भी शामिल हो सकता है। यह यूनिकोड तारों से अलग है (या होगा, php6 के रूप में), जो दो बाइट वर्णों के अनुक्रम हैं।

8

PHP 5.2.1 में बाइनरी तारों को पेश किया गया था, लेकिन केवल PHP 6 से शुरू होने के लिए प्रभावी होने की उम्मीद थी। यह यूनिकोड और बाइनरी तारों के बीच अंतर करने का प्रयास था। पूर्व नया स्ट्रिंग प्रारूप है, बाद वाला वर्तमान प्रारूप है लेकिन "बी" नोटेशन में बदल गया है।

जैसा कि आप जानते हैं, PHP 6 को छोड़ दिया गया था और स्ट्रिंग प्रारूप नहीं बदला गया था। "बी" नोटेशन उस युग से सिर्फ एक अवशेष है।

'foobar' === b'foobar'; // true 


तो आजकल (PHP 5 और 7), बाइनरी स्ट्रिंग केवल स्ट्रिंग स्वरूप है। चरित्र एन्कोडिंग (जिसे मल्टीबाइट हो सकता है) आपके टेक्स्ट एडिटर, वेब ब्राउजर इत्यादि द्वारा "ऊपरी स्तर" पर प्रबंधित किया जाता है। आप एक बाइनरी स्ट्रिंग को बाइट मानों की पूर्ण 0-255 रेंज वाली स्ट्रिंग के रूप में देख सकते हैं।

गैर-मुद्रित पात्रों के साथ एक स्ट्रिंग और ऐसे, PHP में किसी भी अन्य स्ट्रिंग के रूप में छेड़छाड़ की जा सकती है, लेकिन आपको इसे प्रदर्शित करने वाले कचरे मिलेंगे। इसके अलावा कुछ पात्रों का विशेष अर्थ होता है: \0 सी और एसक्यूएल में स्ट्रिंग समाप्ति अंक, नियंत्रण वर्ण आदि हैं। जैसे ही आप उन्हें PHP के बाहर उपयोग करते हैं, आपको परेशानी का सामना करना पड़ सकता है।

उदाहरण के लिए, random_bytes() ऐसे तार उत्पन्न करता है।

+0

मुझे JSON के साथ समस्या आती है। लेकिन PHP यादृच्छिक रूप से 'बी' और कभी-कभी बिना मेरी स्ट्रिंग देता है। यही कारण है कि, कभी-कभी मेरा JSON प्रस्तुत नहीं किया जाता है और कभी-कभी यह होता है .. यह मुझे पागल कर रहा है! अगर कोई इस मामले में है, तो यह जानना उपयोगी हो सकता है कि JSON इस "बी" – Delphine

+0

को संभाल नहीं करता है, अपने मामले के लिए एक प्रश्न पोस्ट करने के लिए स्वतंत्र महसूस करें। –

संबंधित मुद्दे