Konvertieren Sie einen String in C++ in eine binäre Sequenz
-
Verwendung von die Klasse
bitset<N>
zum Zeichenketten in C++ in binäre Sequenzen umzuwandeln - Verwenden Sie die benutzerdefinierte Funktion, um Zeichenketten in C++ in binäre Sequenzen umzuwandeln
Dieser Artikel zeigt verschiedene Methoden zum Konvertieren einer Zeichenkette in eine Binärsequenz in C++.
Verwendung von die Klasse bitset<N>
zum Zeichenketten in C++ in binäre Sequenzen umzuwandeln
In Anbetracht der beliebigen Zeichenkettenfolge konvertieren wir jedes Zeichen in die entsprechende binäre Darstellung. Da die ASCII-Zeichen den Integralzahlen zugeordnet sind und der Wert char
als int
behandelt werden kann, verwenden wir die Klasse bitset<N>
, um für jedes Zeichen eine feste Binärsequenz zu initialisieren.
Beachten Sie, dass einer der Konstruktoren des bitset<N>
eine Möglichkeit bietet, die Binärsequenz aus den Zeichenwerten zu konstruieren, aber unabhängig davon, ob das char
in den Integralwert umgewandelt worden wäre, selbst wenn das int
erwartet wird. Die obige Lösung erfordert das Durchlaufen der gesamten Zeichenkette. Beachten Sie außerdem, dass die Anweisung if
nur in der Schleife platziert wird, um das Format der gedruckten Ausgabe zu steuern.
#include <bitset>
#include <iostream>
#include <vector>
using std::bitset;
using std::cout;
using std::endl;
using std::string;
int main() {
string str = "Arbitrary string to be converted to binary sequence.";
for (int i = 0; i < str.length(); ++i) {
bitset<8> bs4(str[i]);
cout << bs4 << " ";
if (i % 6 == 0 && i != 0) cout << endl;
}
cout << endl;
return EXIT_SUCCESS;
}
Ausgabe:
01000001 01110010 01100010 01101001 01110100 01110010 01100001
01110010 01111001 00100000 01110011 01110100 01110010
01101001 01101110 01100111 00100000 01110100 01101111
00100000 01100010 01100101 00100000 01100011 01101111
01101110 01110110 01100101 01110010 01110100 01100101
01100100 00100000 01110100 01101111 00100000 01100010
01101001 01101110 01100001 01110010 01111001 00100000
01110011 01100101 01110001 01110101 01100101 01101110
01100011 01100101 00101110
Verwenden Sie die benutzerdefinierte Funktion, um Zeichenketten in C++ in binäre Sequenzen umzuwandeln
Alternativ können wir eine Funktion definieren, die einen int
-Wert annimmt und die binäre Darstellung als std::string
-Objekt zurückgibt. Diese Version erfordert auch eine Iteration, bis der angegebene Zeichenwert durch Teilen durch zwei auf 0 reduziert wird. Beachten Sie jedoch, dass die vorherige Lösung die Big-Endian-Darstellung ausgibt, wie wir sie normalerweise in geschriebenen Zahlen verwenden, und das folgende Beispiel gibt den Little-Endian aus, wenn die zugrunde liegende Maschine sie speichert.
#include <bitset>
#include <iostream>
#include <vector>
using std::bitset;
using std::cout;
using std::endl;
using std::string;
string toBinary(int n) {
string r;
while (n != 0) {
r += (n % 2 == 0 ? "0" : "1");
n /= 2;
}
return r;
}
int main() {
string str = "Arbitrary string to be converted to binary sequence.";
for (int i = 0; i < str.length(); ++i) {
cout << toBinary(str[i]) << " ";
if (i % 6 == 0 && i != 0) cout << endl;
}
return EXIT_SUCCESS;
}
Ausgabe:
1000001 0100111 0100011 1001011 0010111 0100111 1000011
0100111 1001111 000001 1100111 0010111 0100111
1001011 0111011 1110011 000001 0010111 1111011
000001 0100011 1010011 000001 1100011 1111011
0111011 0110111 1010011 0100111 0010111 1010011
0010011 000001 0010111 1111011 000001 0100011
1001011 0111011 1000011 0100111 1001111 000001
1100111 1010011 1000111 1010111 1010011 0111011
1100011 1010011 011101
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn FacebookVerwandter Artikel - C++ String
- Finden Sie das erste sich wiederholende Zeichen in einer Zeichenfolge in C++
- Finden Sie die längste gemeinsame Teilzeichenfolge in C++
- Großschreiben des ersten Buchstabens einer Zeichenfolge in C++
- Vergleich von String und Character in C++
- Entfernen Sie das letzte Zeichen aus einer Zeichenkette in C++
- Abrufen des letzten Zeichens einer Zeichenkette in C++