HopelessFrag Geschrieben 24. Januar 2006 Geschrieben 24. Januar 2006 Hallo! Ich schreibe gerade an einem Programm welches mit IP-Adressen zu tun hat...dafür benötige ich einen Algorithmus welcher Dezimal-Zahlen in Binär umwandelt und auch Binär in Dezimal. Optimal wär wenn direkt ganze IP-Adressen umgewandelt werden können. Kennt jemand solch einen Algorithmus? Oder gibt es sogar eine spezielle Funktion? Habe bereits gegoogelt, doch die Ergebnisse haben meist nicht funktioniert. Danke im Voraus! Zitieren
hubibi Geschrieben 24. Januar 2006 Geschrieben 24. Januar 2006 Ich versuchs mal: FunktionsName (int MeinDezimalZahl) { Rest = MeinDezimalZahl % 2 // Modulo IntegerZahl = MeinDezimalZahl / 2 // eventuell abrunden FunktionsName (IntegerZahl) // Rekursiver Aufruf Binärzahl= Binärzahl + Rest } Ist jetzt aber nur Dezimalzahl in Binärzahl. Zitieren
Bubble Geschrieben 24. Januar 2006 Geschrieben 24. Januar 2006 Was soll das? Ein Computer speichert Zahlen ohnehin nur binär. Möchstest Du das Bit-Muster eines Langwortes (4 Bytes, entspricht u.a. auch einer IP-Adresse) ausgeben? Zitieren
HopelessFrag Geschrieben 24. Januar 2006 Autor Geschrieben 24. Januar 2006 ja ich möchte das Bitmuster in einer variablen speichern... Zitieren
nic_power Geschrieben 24. Januar 2006 Geschrieben 24. Januar 2006 Hallo, ... und auch Binär in Dezimal. Dafür kannst Du "strtol()" mit der Basis 2 verwenden. Nic Zitieren
Bubble Geschrieben 24. Januar 2006 Geschrieben 24. Januar 2006 ja ich möchte das Bitmuster in einer variablen speichern... Wenn Du z.B. einer Integer-Variablen eine Zahl zuweist, wird an ihrer Speicheradresse das Bitmuster gespeichert. Möchtest Du das Bitmuster einer Binärzahl eventuell als String ("1011...usw...") ausgeben? Oder meinst Du den Umgekehrten Weg (String mit Zahlen als Abbildung eines Bitmusters -> Zahl), wie nic_power vermutet hat? Zitieren
Hakawamu Geschrieben 1. Februar 2006 Geschrieben 1. Februar 2006 Ich hab da mal was vorbereitet *g* Gut dass ich meine alten Sourcen aufhebe int main(int argc, char *argv[]) { int i; int iArray[32]; std::cout << "\nBitte eine 32-bit Ganzzahl eingeben: "; std::cin >> iEingabe; for(i = 31; i >= 0; i--) { iArray[i] = iEingabe % 2; iEingabe = iEingabe / 2; } for(i = 0; i <= 31; i++) { std::cout << iArray[i]; } std::cout << endl; return 0; } Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.