Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

04.06.2020, 23:58

Algorithmus zur Umrechnung

Hallo Leute. Ich soll ein Algorithmus zur Umrechnung von Dezimalzahlen in Dual,Oktal und Hexadezimalzahlen erstellen. Kann ich das so lassen? Das kann man bestimmt vereinfachen. Verbesserungsvorschläge wäre nett.
»MaxB96« hat folgende Datei angehängt:
  • 1.pdf (399,45 kB - 146 mal heruntergeladen - zuletzt: 02.04.2024, 23:43)

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

2

05.06.2020, 08:20

Willkommen im Forum.

Ich möchte ungern ein PDF-Dokument herunterladen um mir deinen Code anzusehen. Du kannst den Code hier direkt im Forum posten. Dafür haben wir hier extra Code tags. Dann sieht das ganze auch entsprechend gut aus.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

3

05.06.2020, 09:07

Das ist ein Diagramm(umgangssprachlich und in graphischer Form von mir auf einem Blatt Papier gezeichnet und gescannt.Das ist kein Code. Ich weiß nicht wie man das Bild hier im Text miteinfügen kann, damit ihr das sofort sieht.
»MaxB96« hat folgendes Bild angehängt:
  • 1.PNG

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »MaxB96« (05.06.2020, 17:39) aus folgendem Grund: Ich versuche das Bild einzufügen im Text.


4

05.06.2020, 13:04

Speicher das Bild doch einfach in Paint (oder so) als bild.PNG ab und füge es als Anhang, wie du es mit der PDF gemacht hast, ein.
Wenn du das Bild nicht als Bildformat hast kannst du auch ein Screenshot mit der [Druck] taste machen.

5

05.06.2020, 17:40

Ok, habs.

Jonathan

Community-Fossil

  • Private Nachricht senden

6

05.06.2020, 18:47

Also ich muss sagen, ich finde es als pdf 10mal besser. Es ist ja jetzt echt ein Seitenfüllendes Diagramm, da will ich vielleicht auch mal reinzoomen und scrollen, anstatt mir ein kleines Bildchen anzugucken, das hier irgendwie in die Seite eingebettet wurde. Und es ist ja jetzt wirklich nur 2 Klicks mehr...

Ich schaus mir heute Abend nochmal genauer an, wenn es bis dahin noch kein inhaltliches Feedback gibt.
Lieber dumm fragen, als dumm bleiben!

7

05.06.2020, 19:13

Ja, es ist im pdf besser. Danke schonmal.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

8

06.06.2020, 11:57

Du hast in deinem Diagramm jetzt 3 verschiedene Wege für die verschiedenen Basen (2, 8, 16). Das kannst du alles vereinheitlichen und die Basis als zusätzlichen Parameter angeben, dann kannst du später mit demselben Code jede beliebige Basis benutzen, solange du deren "Ziffern" darstellen kannst.

Das Prinzip dahinter ist immer das gleiche: Du teilst deine umzuwandelnde Zahl so lange durch die Basis, bis du bei einer Zahl kleiner als der Basis angekommen bist, und schaust dir bei jeder Division den Rest an. Dieser Rest ergibt dann jeweils eine "Ziffer". Jetzt musst du die Ziffern nur noch rückwärts zusammensetzen.

Beispiel: Ich möchte die Zahl 12345 ins Oktalsystem umrechnen. Meine Basis ist also 8.

12345 mod 8 = 1 <-- 1 ist die letzte Ziffer meiner Zahl im Oktalsystem
Weiter mit 12345 / 8 = 1543 (ganzzahlige Division, es wird abgerundet)

1543 mod 8 = 7 <-- 7 ist die vorletzte Ziffer
Weiter mit 1543 / 8 = 192

192 mod 8 = 0 <-- 0 ist die vorvorletzte Ziffer
Weiter mit 192 / 8 = 24

24 mod 8 = 0 <-- 0 ist die vorvorvorletzte Ziffer
Weiter mit 24 / 8 = 3

3 ist kleiner als die Basis 8, also ist 3 die vorvorvorvorletzte Ziffer, und wir sind fertig.

Zusammengesetzt haben wir dann: 30071 (Oktalsystem).

Jonathan

Community-Fossil

  • Private Nachricht senden

9

06.06.2020, 15:08

Noch ein Tipp: Du kannst für jede Zahlenbasis ein Array bauen, das Ziffern in Zeichen umwandelt. Denn letztendlich willst du ja aus einem int einen string machen, den du entsprechend Ziffer für Ziffer aufbaust. In etwa so:

C-/C++-Quelltext

1
2
3
4
5
char zeichen_von_ziffer(int ziffer)
{
char[] zeichen="0123456789";
return zeichen[ziffer];
}


Dieses Zeichenarray kann man dann verändern und auch die Werte 10-15 fürs Hexadizimalsystem eintragen. Dadurch kannst du dann noch mehr Zahlensysteme unterstützen, alles was dein Algorithmus als Eingabe bräuchte wäre die Basis und dieses Array, welches Ziffern Zeichen zuordnet. Und je nachdem welches Array du benutzt könntest du auch steuern ob beispielsweise die Buchstaben im Hexadezimalsystem groß oder klein geschrieben werden.
Lieber dumm fragen, als dumm bleiben!

10

06.06.2020, 18:15

Danke.

Werbeanzeige