2017-12-29 23 views
0

Ich habe eine Frage, wie kann ich in C++ eine binäre Zeichenkette in ein int umwandeln, indem ich die gleiche reprensetation der Zahl behalte? Zum Beispiel möchte ich auf diese int 0000.Konvertiere binäre Zeichenkette in int mit der gleichen Darstellung

diese Zeichenfolge „0000“ konvertieren Wenn ich dies:

string str = "0000" ; 
int num = atoi(str.c_str()); 
cout <<num << endl; 

bekam ich die Nummer 0, aber ich will die Nummer 0000.

+5

Ein 'int' einen numerischen Wert speichert. '0',' 0000', '00000000' haben alle den gleichen Zahlenwert - Null. Es gibt keine Möglichkeit, die Unterscheidung nur in einem "int" zu bewahren. Wenn die Unterscheidung wichtig ist, behalten Sie sie als "Zeichenfolge" bei. –

+0

Ich möchte die Unterscheidung beibehalten, weil ich mit Integer-Maske arbeite Ich muss einige Zahlen vergleichen, und ich weiß nicht, wie man mit String-Maske arbeitet. Hier ist meine andere Frage: https://stackoverflow.com/questions/48000038/choose-some-numbers-coding-in-gray-code/48000234?noredirect=1#comment83002344_48000234 –

+0

@RedOne Die Maske '0000' ist das gleiche als "0" gibt es keinen Unterschied. – NathanOliver

Antwort

0

werden Sie Formatierungslogik mit setfill Manipulator hinzufügen.

#include <iostream> 
#include <iomanip> 

int main() 
{ 

    for(int n = 0; n <= 1000; n = n + 100) 
    { 
    std::cout << "default: " << std::setw(4) << n << '\t' 
     << "setfill('0'): " << std::setfill('0') 
     << std::setw(4) << n << '\n'; 
    } 

    return 1; 
} 

Dies wird produzieren Ausgabe folgende:

default: 0 setfill('0'): 0000 <-- Desired formatting when value is 0 
default: 0099 setfill('0'): 0099 
default: 0198 setfill('0'): 0198 
default: 0297 setfill('0'): 0297 
default: 0396 setfill('0'): 0396 
default: 0495 setfill('0'): 0495 
default: 0594 setfill('0'): 0594 
default: 0693 setfill('0'): 0693 
default: 0792 setfill('0'): 0792 
default: 0891 setfill('0'): 0891 
default: 0990 setfill('0'): 0990 
+0

Dies ist eine nette Idee, danke ich werde versuchen Fang damit an. –

Verwandte Themen