मैं एक कंपनी के उपयोग के एक विशेष मानक को पूरा करने के लिए, एक सॉकेट में बाइनरी बाइट्स की एक श्रृंखला भेजने की कोशिश कर रहा हूं। मेरी कंपनी में किसी ने भी इसके लिए रूबी का उपयोग नहीं किया है, लेकिन दूसरी भाषाओं में, वे एक समय में डेटा को एक बाइट में भेजते हैं, (आमतौर पर कुछ प्रकार के "पैक" विधि के साथ)।रूबी बाइट्स/बाइनरी को कैसे संभालता है?
मैं फ्लाई पर बाइनरी बनाने के लिए वैसे भी नहीं ढूंढ सकता, या बाइट्स बना सकता हूं (सबसे नज़दीक मैं इसे पा सकता हूं कि आप स्ट्रिंग को अपने वर्णों का प्रतिनिधित्व करने वाले बाइट्स में कैसे बदल सकते हैं)।
मैं आप कह सकते हैं बताती है कि कुछ की तरह:
@var = 0b101010101
लेकिन यह कैसे मैं फार्म "101,010,101" या बनाया जब मैं string.to_i करना जिसके परिणामस्वरूप पूर्णांक में एक स्ट्रिंग बदल जाएगा (2) एक वास्तविक बाइनरी में। अगर मैं सिर्फ एक सॉकेट में स्ट्रिंग भेजता हूं, तो क्या वह शाब्दिक पात्रों के बजाय "0" और "1" के लिए ASCII नहीं भेजेगा?
निश्चित रूप से रूबी में ऐसा करने का कोई तरीका है?
बाइनरी_स्ट्रिंग में कुछ "/" क्यों हैं? – why
बाइनरी स्ट्रिंग के लिए यह 0x2F (47) मान के साथ बाइट होना संभव है। यह "/" की ASCII एन्कोडिंग है, इसलिए यदि आप स्ट्रिंग का निरीक्षण करते हैं तो रूबी आमतौर पर "/" प्रिंट करेगा। एक ही चीज किसी भी ASCII चरित्र के लिए जाती है। रूबी वास्तव में नहीं जानता है कि आपकी स्ट्रिंग एक "द्विआधारी स्ट्रिंग" है, रूबी के लिए आपकी स्ट्रिंग मूल रूप से बाइट्स का अनुक्रम है (1.9 को छोड़कर उन्होंने कुछ एन्कोडिंग जानकारी जोड़ दी है)। –
धन्यवाद! यह मुझे बहुत मदद करता है – why