AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Dezimalzahlen ins Binärsystem
Thema durchsuchen
Ansicht
Themen-Optionen

Dezimalzahlen ins Binärsystem

Ein Thema von NewDelphiBenutzer · begonnen am 4. Nov 2010 · letzter Beitrag vom 4. Nov 2010
Antwort Antwort
Seite 1 von 3  1 23      
NewDelphiBenutzer

Registriert seit: 30. Sep 2010
14 Beiträge
 
#1

Dezimalzahlen ins Binärsystem

  Alt 4. Nov 2010, 15:52
Hey Leute ich wollte ein Programm machen als freiwillige Zusatzhausaufgabe. Und da soll am Ende folgendermaßen aussehen: Man soll in ein Editfeld eine Zahl eingeben. Und diese Zahl soll dann ins Binärsystem umgewandelt werden.

Und zwar sind unter dem Editfeld 8 Checkboxen.
Das Programm soll entsprechend der Zahl Kreuze in die Boxen setzen.
Beispiel: Benutzer gibt 200 ins Editfeld ein.
Die Boxen sind von links nach rechts immer weniger wert.
128,64,32,16,8,4,2,1
x x / / x

Weil von 200 werden erst 128 angekreuzt, dann bleiben ja noch 72 übrig. Dann muss das Programm gucken in 72 passt 64 auch noch rein. Danach bleibt ja noch 8 übrig, dann guckt das Programm okay 32 und 16 gehen nicht, da soll kein Kreuz hin. Aber 8 sind übrig perfekt. Da kommt dann noch ein kreuz hin. Und die Anordnung kommt halt immer auf die Zahl an. Und das sollen wir irgendwie mit mod und dif machen aber ich weiß nicht genau wie meine diese Funktion anwendet. DAs ist ja immer etwas mit Rest. Ich habe auf jeden Fall eine Variable namens Dezimalzahl. Und ich wollte fragen wie ich das anfangen soll, damit das Programm funktioniert. Ich bräuchte eine kleine Starthilfe.
Würde mich sehr freuen !
Liebe Grüße Alex
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#2

AW: Dezimalzahlen ins Binärsystem

  Alt 4. Nov 2010, 15:55
Das Prinzip ist. Aber es ist deine Aufgabe. Starthilfe hast du nun. Benutze ein logisches UND (in Delphi and).

Code:
if(zahl and $01)then // Box für Bit 0
if(zahl and $02)then // Box für Bit 1
if(zahl and $04)then // Box für Bit 2
if(zahl and $08)then // Box für Bit 3
if(zahl and $10)then // Box für Bit 4
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Dezimalzahlen ins Binärsystem

  Alt 4. Nov 2010, 15:58
Mod und Div brauchste doch gar nisch?
Hier mal ein kleiner Pseudocode, wie das Umwandeln für den Anfang aussehen könnte:
Code:
LIES Editfeld AUS => VARIABLE "s"
WANDLE "s" MITTELS "IntToStr" IN "Integer" UM => VARIABLE "i"

WENN "i" >= 128 DANN
  SETZE höchstes bit (msb)
  ZIEHE 128 VON "i" AB

WENN "i" >= 64 DANN
  SETZE zweithöchstes bit
  ZIEHE 64 VON "i" AB

...
//Edit: War mal wieder jemand schneller ... Aber na gut, sind ja auch 2 unterscheidliche Ansätze

Geändert von implementation ( 4. Nov 2010 um 16:00 Uhr)
  Mit Zitat antworten Zitat
NewDelphiBenutzer

Registriert seit: 30. Sep 2010
14 Beiträge
 
#4

AW: Dezimalzahlen ins Binärsystem

  Alt 4. Nov 2010, 16:00
aber wir müssen das mit mod und dif machen das ist die letzte vorbereitungsmöglichkeit für die am montag anstehende Klausur, weil wir das mit dem, was ihr vorgeschlagen habt, noch nicht hatten =(
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#5

AW: Dezimalzahlen ins Binärsystem

  Alt 4. Nov 2010, 16:00
//Edit: War mal wieder jemand schneller ... Aber na gut, sind ja auch 2 unterscheidliche Ansätze
Allerdings. Und deiner zeigt, finde ich, sehr gut eine weitere Eigenschaft von Binärzahlen.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Dezimalzahlen ins Binärsystem

  Alt 4. Nov 2010, 16:02
Zitat von NewDelphiBenutzer:
aber wir müssen das mit mod und dif machen
Hmm, okay. Dann benutzen wir statt des Abziehens einfach Mod und statt des Testens auf GrößerGleich eben Div
Code:
WENN i div 128 = 1 DANN
  SETZE BOX
  i = i mod 128
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: Dezimalzahlen ins Binärsystem

  Alt 4. Nov 2010, 16:02
Ich gebe dir mal einen Ansatz/Beispiel:

10 : 2 = 5 Rest 0
5 : 2 = 2 Rest 1
2 : 2 = 1 Rest 0
1 : 2 = 0 Rest 1

Die Reste von oben nach unten ergeben dann die Binärzahl: 1010

5 div 2 = 2
5 mod 2 = 1

Damit lässt sich denke ich mal was anfangen
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
NewDelphiBenutzer

Registriert seit: 30. Sep 2010
14 Beiträge
 
#8

AW: Dezimalzahlen ins Binärsystem

  Alt 4. Nov 2010, 16:13
hmm also soll ich schreiben
Delphi-Quellcode:
if dezimalzahl div128=1
          then checkbox128.check;
und muss das nicht irgendwas mit boolean rein oder so? das sagt mein delphi und mein lehrer hat es auch erwähnt, aber ich wusste nich, was das bedeutet. ich bin echt ziemlich blöd
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#9

AW: Dezimalzahlen ins Binärsystem

  Alt 4. Nov 2010, 16:14
Leuts, ich hab das Gefühl, daß hier schon ein paar Grundlagen fehlen. Es geht ja hier mal nicht nur um die Darstellungsweise.

Aber nochmal, es ist deine Aufgabe. Wenn dein Lehrer in der Klausur was abgewandeltes fragt, hilft dir die exakte Lösung eines spezifischen Problems auch nicht mehr. Also versuch doch mal es wenigstens zu verstehen ... okay?

aber wir müssen das mit mod und dif machen das ist die letzte vorbereitungsmöglichkeit für die am montag anstehende Klausur, weil wir das mit dem, was ihr vorgeschlagen habt, noch nicht hatten =(
Okay, da du was lernen und begreifen sollst, versuchen wir doch mal was anderes.

Was weißt du über Dezimalzahlen, Binärzahlen und Hexadezimalzahlen und deren Zusammenhänge?
Hier mal eine kleine, vielleicht überraschende, Eigenschaft:

Code:
dez  hex  bin
 0    00     0000
 1    01     0001 *
 2    02     0010 *
 3    03     0011
 4    04     0100 *
 5    05     0101
 6    06     0110
 7    07     0111
 8    08     1000 *
 9    09     1001
10    0A    1010
11    0B    1011
12    0C    1100
13    0D    1101
14    0E    1110
15    0F    1111
-----------------
16    10    10000 *
Erkennst du das Muster? Siehst du, daß eine Hexadezimalstelle immer exakt 4 Bits entspricht (also Binärstellen)? ... siehste was bei den markierten Zahlen?

Nun gebe ich dir eine Hexadezimalzahl. Wie schnell kannst du die in eine Binärzahl umwandeln (ohne Taschenrechner) und wie hast du es gemacht?

Kannst du den Zusammenhang mit dem Code oben erkennen? Und den mit dem Vorkommen von 128 in den Codebeispielen?
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#10

AW: Dezimalzahlen ins Binärsystem

  Alt 4. Nov 2010, 16:15
2 Möglichkeiten:
Delphi-Quellcode:
if dezimalzahl div 128 = 1 then
  checkbox128.checked := true
else
  checkbox128.checked := false;
Oder eleganter:
checkbox128.checked := dezimalzahl div 128 = 1;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz