PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : c++ HILFE


Unregistered
2002-12-03, 12:23:03
hi
was für einen quellcod emuss ich eingeben um eine dezimal zahl in eine dualzahl mit hilfe einer schleife umzuwandeln
( wird eine zahl grösser als 64 eingegeben soll eine fehlermeldung erscheinen und das eingabe feld gelöscht werden )



( ich arbeite mit borland builder 4 )

Nagilum
2002-12-04, 08:52:52
Zum Beispiel:

Du suchst dir immer die höchste passende Zweierpotenz, ziehst sie von der Zahl ab und wiederholst den Vorgang mit dem Rest, solange bis du bei Null ankommst:

Eingabe: 42

2^5 = 32, Rest 10
2^3 = 8, Rest 2
2^1 = 2, Rest 0

Gesuchte Zahl: 101010

Ohne Gewähr, da noch ohne Frühstück. :D

Nasenbaer
2002-12-04, 15:05:07
Aber bietet Borland nicht auch Funktionen zur Umwandlung an?
IMO gibt es auf jedenfall IntToHex(). Also sollte es auch sowas für Binäre Zahlen geben.

MFg Nasenbaer

Nagilum
2002-12-04, 17:10:32
Ich denke mal, dass es sich hier um ne Hausaufgabe für die Schule handelt. :stareup:

Xmas
2002-12-04, 18:19:39
Originally posted by Unregistered
hi
was für einen quellcod emuss ich eingeben um eine dezimal zahl in eine dualzahl mit hilfe einer schleife umzuwandeln
( wird eine zahl grösser als 64 eingegeben soll eine fehlermeldung erscheinen und das eingabe feld gelöscht werden )



( ich arbeite mit borland builder 4 )
Größer als 64 oder größer als 63? Wenn 63 das Maximum ist, reichen 6 Binärstellen.

Ich kenn mich mit dem BCB nicht aus, darum hier nur ein paar Codeteile:


char binaerzahl[7];
int zahl = // wie auch immer du die Zahl aus dem Eingabefeld ermittelst
if (zahl > 63)
{
// Fehlermeldung ausgeben
// Eingabefeld löschen
}
else
{
for (int i = 5; i >= 0; i--)
{
binaerzahl[i] = (zahl & 1) ? '1' : '0';
zahl >>= 1;
}
binaerzahl[6] = '\0';

// Binärzahl ausgeben
}


Der Null-terminierte String binaerzahl beinhaltet dann die Zahl in Binärdarstellung mit führenden Nullen (immer 6 Stellen).