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!
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.
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?
HopelessFrag Geschrieben 24. Januar 2006 Autor Geschrieben 24. Januar 2006 ja ich möchte das Bitmuster in einer variablen speichern...
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
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?
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; }
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden