![]() |
Vergleich zweier Dualzahlen und umwandlung in eine Dezizahl
Also mein anliegen:
Bin grad dabei für meinen Netzwerklehrer ein Programm zu schreiben das nach eingabe der IP-Adresse und der Subnet-Mask die NetID ausgeben soll. Dies Funktioniert so: Bsp.: IP: 130.57.0.1 SM: 255.255.240.0 Das ganze in Dualzahlen: IP: 10000010.00111001.00000000.00000001 SM: 11111111.11111111.11110000.00000000 So nun werden die zahlen verglichen nach dem sogenanten "Du-brauchst-2-Arme-um-2-Knöpfe-gleichzeitig-zu-drücken"Prinzip :mrgreen: Da würde dann als NetID rauskommen: 10000010.00111001.00000000.00000000 in dezimal: 130.57.0.0 So was sollte das ganze jetzt? ganz einfach: Die zahlen in eine Dualzahl umwandeln klappt ja nur wie kann ich jetzt die Dualzahlen miteinander vergleichen? Ich hatte da an 2 Arrays und eine IF Abfrage gedacht? Könnt ihr mir dabei helfen? würd mich freuen! Bis denne :hi: |
Re: Vergleich zweier Dualzahlen und umwandlung in eine Deziz
Moin KingofWerlte,
dazu brauchst Du nichts umzuwandeln, da dual/binär und dezimal ja nur unterschiedliche Darstellungen sind. Verknüpfe einfach die entsprechenden Bytes mit AND. |
Re: Vergleich zweier Dualzahlen und umwandlung in eine Deziz
Auf was willste die Dualzahlen den Vergleichen?
Nur ob sie gleich sind, oder auch die Differenz? |
Re: Vergleich zweier Dualzahlen und umwandlung in eine Deziz
Mir scheint, du hast den spass in strings konvertiert?
Um nochmal zu präzisieren was der seehase meinte: Du brauchst keinen vergleich sondern nur einen operator. und zwar AND! Konvertiere die IP und SM in zwei Cardinal-variablen und sagst dann einfach:
Delphi-Quellcode:
hoffe das bringt dich weiter :-D
result := IP AND SM;
|
Re: Vergleich zweier Dualzahlen und umwandlung in eine Deziz
Hmm also natürlich muss ich die zahlen umwandeln. Ich kann doch nicht die IP-Adresse und die Subnet-Mask in der Dezimalform vergleichen. Die müssen in Dualzahlen umgewandelt werden.
Zum vergleichen: Das soll so gehn: Wenn die erste Zahl der IP-Adresse und die erste Zahl der SM-Adresse 1 sind dann soll die erste zahl der NetID auch eine 1 sein. Wenn sie aber unterschiedlich sind oder wenn sie beide 0 sind dann soll eine 0 in der NetID stehn. |
Re: Vergleich zweier Dualzahlen und umwandlung in eine Deziz
Moin KingofWerlte,
Zitat:
Die einzige Umwandlung, die Du vornehmen musst, ist vom String in das Zahlenformat, also StrToInt. Zitat:
|
Re: Vergleich zweier Dualzahlen und umwandlung in eine Deziz
*am kopf pack und sich wunder* ja natürlich! Wie sagt man noch gleich: Man sieht den Wald vor lauter Bäumen nicht!
Die werden ja automatisch umgewandelt Danke!! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz