| Programmieraufgaben Hier wird regelmäßig eine neue Programmieraufgabe gestellt, die dann gelöst werden soll und in Zusammenarbeit mit den Moderatoren auch besprochen werden kann. |
Diskussion: Umrechnungen in andere Zahlensysteme im Forum Programmieraufgaben, in der Kategorie Code Kitchen; Anzeige hier eine einfache Aufgabe von elite-noob: Aufgabenstellung: Ein Programm schreiben welches Dezimahlzahlen in Hexadezimalzahlen, oktalzahlen, und dualzahlen umrechnet. Erweiterungen ...
![]() |
| | #1 (permalink) |
| Member of Honour ![]() Registriert seit: 28.05.03 ![]() Likes: 1 | Anzeige hier eine einfache Aufgabe von elite-noob: Aufgabenstellung: Ein Programm schreiben welches Dezimahlzahlen in Hexadezimalzahlen, oktalzahlen, und dualzahlen umrechnet. Erweiterungen - das ganze in jede richtung ermöglichen also dual in dezimal oder dezimal in dualzahlen - evtl. auch noch in andere zahlenformate - die möglichkeit selber die basis anzugeben (bei dualzahlen ist das 2 bei hexadeziamalzahlen 16 etc. viel spass
__________________ http://livehabo.hackerboard.de | http://livebb.sourceforge.net |
| | |
| | #2 (permalink) |
| Mmmmh das hab ich mal vor längerer Zeit gemacht musste für einen Bruteforcer in PHP sein müsste eigentlich noch so funtzen: PHP Für den Rest bin ich heut zu müde vll mach ich morgen ne Erweiterung. | |
| | |
| | #4 (permalink) |
| Registriert seit: 02.08.06 ![]() Likes: 0 | @CPU8080 : Ich hab dein Programm mal getestet und was ich persoenlich schlecht finde das der 0 und negative zahlen nicht umrechnen konnte. Also hab ich dein programm noch was ergeanzt: programm Jon2 |
| | |
| | #5 (permalink) |
| @Jon2 jo so ist es auf jedenfall besser, aber müsste man es wenn mans genau nimmt net so machen das man das mit nem signed byte oder wie das heiß machen muss. Also bei ner negativen Zahl erst eine not operation durchführen muss und dann 1 addieren muss. Beispiel: Dez:-5 Hex: FFFFFFFFFFFFFFFB So sagt mir der WinRechner das auch | |
| | |
| | #6 (permalink) |
| Moderator ![]() Registriert seit: 20.07.05 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 202 | 16bit DOSencode komplette Anwendung samt ASCII2DWORD Routine: Dezimal_To_X_Basis Konverter Konvertiert in diesem Beispiel vorzeichenlose Dezimalzahlen in Darstellung zur Basis X, wobei die Basis X aufgrund von Zeichenmangel auf 36 beschränkt ist (0-9,A-Z) zuerst die Basis angeben und in der nächsten Zeile eine Zahl < 2^16.
__________________ Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf! Selig, wer nichts zu sagen hat und trotzdem schweigt. |
| | |
| | #7 (permalink) |
| Registriert seit: 14.04.06 ![]() Likes: 4 | Mein C++-Programm ist zwar nicht besonders schön oder schnell (ich bin Anfänger, vielleicht könnt ihr mir ein bisschen helfen), aber es beherrscht die Umformung von allen positiven natürlichen Zahlen und 0 von einem beliebigen Zahlensystem in ein anderes beliebiges Zahlensystem. Beispiel: ./convert 8 2 10 wandelt 10 vom Oktal- ins Binärsystem. C++-System-Converter |
| | |
| | #8 (permalink) |
| naja, ich hab gerade etwas anderes in PVX gemacht, undzwar muss man hier ein ASCII zeichen eingeben, dann nimmt das Programm davon die Hexadezimalzahl, rechnet diese um ins Dezimalsystem und vom Dezimalsystem ins Binär-, Oktal-, und Duodezimalsystem. Hier der Code: Code: Anfang:
INPUT "Geben Sie bitte ein beliebiges ASCII Zeichen ein: ",A$
BINA$="00000000"
OKTA$="000"
HEXA$=HTA(A$)
DUOD$="000"
Lob=LEN(HEXA$)
Eki=1
DEZI=0
IF LEN(A$)>1 THEN {
PRINT 'CS',
PRINT "Sie haben eine falsche eingabe get",CHR(228),"tigt, bitte wiederholen Sie ihre eingabe!"
GOTO Anfang
} ELSE {
FOR I=Lob TO 1 STEP -1
IF HEXA$(I,1)>STR(9) THEN {
SWITCH (HEXA$(I,1))
CASE "A"
Funor=10
BREAK
CASE "B"
Funor=11
BREAK
CASE "C"
Funor=12
BREAK
CASE "D"
Funor=13
BREAK
CASE "E"
Funor=14
BREAK
Case "F"
Funor=15
END SWITCH
} ELSE {
Funor=NUM(HEXA$(I,1))
}
Funor=Funor*Eki
Eki=Eki*16
DEZI=DEZI+Funor
NEXT
DEZR=DEZI
FOR I=8 TO 1 STEP -1
BINA$(I,1)=STR(MOD(DEZR,2))
IF DEZR<>0 THEN DEZR=DEZR/2
NEXT
DEZR=DEZI
FOR I=3 TO 1 STEP -1
OKTA$(I,1)=STR(MOD(DEZR,8))
IF DEZR<>0 THEN DEZR=DEZR/8
NEXT
DEZR=DEZI
FOR I=3 TO 1 STEP -1
D=INT(MOD(DEZR,12))
IF D=10 THEN {
DUOD$(I,1)="A"
}
IF D=11 THEN {
DUOD$(I,1)="B"
}
IF D<>10 AND D<>11 THEN {
DUOD$(I,1)=STR(INT(MOD(DEZR,12)))
}
IF DEZR<>0 THEN DEZR=INT(DEZR/12)
NEXT
IF OKTA$(1,1)="0" THEN {
OKTA$(1,1)=OKTA$(2,1)
OKTA$(2,1)=OKTA$(3,1)
OKTA$(3,1)=""
IF OKTA$(1,1)="0" THEN {
OKTA$(1,1)=OKTA$(2,1)
OKTA$(2,1)=""
}
}
IF DUOD$(1,1)="0" THEN {
DUOD$(1,1)=DUOD$(2,1)
DUOD$(2,1)=DUOD$(3,1)
DUOD$(3,1)=""
IF DUOD$(1,1)="0" THEN {
DUOD$(1,1)=DUOD$(2,1)
DUOD$(2,1)=""
}
}
IF BINA$(1,1)="0" THEN {
BINA$(1,1)=BINA$(2,1)
BINA$(2,1)=BINA$(3,1)
BINA$(3,1)=BINA$(4,1)
BINA$(4,1)=BINA$(5,1)
BINA$(6,1)=BINA$(7,1)
BINA$(7,1)=BINA$(8,1)
BINA$(8,1)=""
IF BINA$(1,1)="0" THEN {
BINA$(1,1)=BINA$(2,1)
BINA$(2,1)=BINA$(3,1)
BINA$(3,1)=BINA$(4,1)
BINA$(4,1)=BINA$(5,1)
BINA$(6,1)=BINA$(7,1)
BINA$(7,1)=""
IF BINA$(1,1)="0" THEN {
BINA$(1,1)=BINA$(2,1)
BINA$(2,1)=BINA$(3,1)
BINA$(3,1)=BINA$(4,1)
BINA$(4,1)=""
IF BINA$(1,1)="0" THEN {
BINA$(1,1)=BINA$(2,1)
BINA$(2,1)=BINA$(3,1)
BINA$(3,1)=""
IF BINA$(1,1)="0" THEN {
BINA$(1,1)=BINA$(2,1)
BINA$(2,1)=""
}
}
}
}
}
PRINT 'CS',
PRINT "Sie haben das ASCII Zeichen ",A$," eingegeben!"
PRINT "Hier nun die Ergebnisse der Umrechnung:"
PRINT "Bin",CHR(228),"r: ",BINA$
PRINT "Oktal: ",OKTA$
PRINT "Dezimal: ",DEZI
PRINT "Duodezimal: ",DUOD$
PRINT "Hexadezimal: ",HEXA$
} | |
| | |
| | #9 (permalink) |
| Code: #include <stdio.h>
int
main (int argc, char *argv[])
{
int base = 0, num = 0, n;
if (argc < 3) {
printf("Zwei Argumente benötigt:\n<Zahl> <Basis>\n\n");
return -1;
}
num = atoi(argv[1]);
base = atoi(argv[2]);
if (!num || (base < 2)) {
printf("Zahl > 0, Basis > 1.\n\n");
return -2;
}
for (n=0; n<40; n++) printf(" ");
while (num > 0) {
n = num % base;
if (n > 10) printf("%c\b\b", n+55); else printf("%i\b\b", n);
num = (int) num/base;
}
printf("\n");
return 0;
} | |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| zahlensysteme | bikmaek | Code Kitchen | 4 | 10.10.05 22:00 |
| Andere Sprache | Valentin | Windows | 3 | 06.12.04 17:05 |