Veröffentlicht 24. Januar 200619 j 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!
24. Januar 200619 j 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.
24. Januar 200619 j 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?
24. Januar 200619 j Hallo, ... und auch Binär in Dezimal. Dafür kannst Du "strtol()" mit der Basis 2 verwenden. Nic
24. Januar 200619 j 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?
1. Februar 200619 j 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; }
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.