2012-04-17 24 views
12

मैं स्ट्रिंग क्लास का उपयोग करके एक स्ट्रिंग को कन्वर्ट करना चाहता हूं - बाइनरी में। चरित्र द्वारा इस चरित्र को करने का तेज़ तरीका क्या है। लूप? या क्या वहां कुछ समारोह है जो मेरे लिए परिवर्तित हो जाएगा? 1 और 0 की बाइनरी।स्ट्रिंग को बाइनरी में कनवर्ट करने का सबसे तेज़ तरीका?

एक स्ट्रिंग से किया जा रहा:

#include <string> 
using namespace std; 
int main(){ 
    myString = "Hello World"; 
} 
+1

आप इस हैं: http://stackoverflow.com/questions/505021/get-bytes-from-stdstring-in-c – Serdalis

+0

@ सर्डलिस मुझे वास्तव में पता नहीं है कि वहां क्या हो रहा है। – Derp

+0

"हैलो, वर्ल्ड" के आउटपुट के रूप में आप क्या देखना चाहते हैं? 11 * 8 '0' या' 1' वर्ण स्ट्रिंग वर्णों के बाइनरी ASCII कोड का प्रतिनिधित्व करते हैं, या कुछ और? – dasblinkenlight

उत्तर

29

std::bitset का उपयोग करते हुए काम करेगा:

#include <string> 
#include <bitset> 
#include <iostream> 
using namespace std; 
int main(){ 
    string myString = "Hello World"; 
    for (std::size_t i = 0; i < myString.size(); ++i) 
    { 
     cout << bitset<8>(myString.c_str()[i]) << endl; 
    } 
} 

आउटपुट:

01001000 
01100101 
01101100 
01101100 
01101111 
00100000 
01010111 
01101111 
01110010 
01101100 
01100100 
+13

या बस 'बिट्स <8> (myString [i]) ' –

+1

तो बिट्स <8> आपको बेस -256 देगा, अगर आप बेस -255 या बेस -257 कहना चाहते हैं बस -1 और +1 जोड़ें? – pyCthon

+0

यदि हम आउटपुट को जोड़ना चाहते हैं जैसे कि यदि एमएसबी पक्ष पर योग के अंत में ओवरफ़्लो बिट (0 या 1) है, तो उसे फिर से योग के अंतिम उत्तर में जोड़ा जाना चाहिए। हम वह कैसे कर सकते है? – user899714

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

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