Studium, Ausbildung und Beruf
 StudiumHome   FAQFAQ   RegelnRegeln   SuchenSuchen    RegistrierenRegistrieren   LoginLogin

Umwandlung von Dezimal in Hex
Gehe zu Seite Zurück  1, 2
Neues Thema eröffnen   Neue Antwort erstellen
Foren-Übersicht -> Informatik-Forum -> Umwandlung von Dezimal in Hex
 
Autor Nachricht
isi1
Moderator
Benutzer-Profile anzeigen
Moderator


Anmeldungsdatum: 10.08.2006
Beiträge: 7394
Wohnort: München

BeitragVerfasst am: 11 März 2008 - 08:03:52    Titel:

PLE NP hat folgendes geschrieben:
Wie bringe ich einem Programm bei, etwas .... noch die zweistelligen Zahlen in Buchstaben umzuwandeln?
Das mache ich meist so, Penelope:

const char vgl[] = "0123456789ABCDEF"

HexChar von i = vgl[i]
PLE NP
Junior Member
Benutzer-Profile anzeigen
Junior Member


Anmeldungsdatum: 28.11.2006
Beiträge: 85

BeitragVerfasst am: 11 März 2008 - 12:08:17    Titel:

Kann mir vielleicht jemand einen kompletten Code für die Berechnung schreiben? Das wäre echt klasse.
isi1
Moderator
Benutzer-Profile anzeigen
Moderator


Anmeldungsdatum: 10.08.2006
Beiträge: 7394
Wohnort: München

BeitragVerfasst am: 11 März 2008 - 12:42:51    Titel:

PLE NP hat folgendes geschrieben:
Kann mir vielleicht jemand einen kompletten Code für die Berechnung schreiben? Das wäre echt klasse.
Wie soll denn der Prototyp Deiner Funktion aussehen, Penelope?

1) Vielleicht so: char* bintohex(int i);

2) Oder so: unsigned long bintohex(short i);

Und soll das Ergebnis als Stringarray oder wie bei dem zweiten Prototypen als gepackte vier Zeichen bereitgestellt werden?
Sollen führende Nullen eingebaut werden - und wie viele?

Versuchen wir mal 2)

Code:
unsigned long bintohex(short i0) {
   const char vgl[] = "0123456789ABCDEF"
   unsigned long dw = 0;
   for (i=0; i<4; i++, i0 >>= 4, dw >>= 8){   
      dw |= vgl[i0 & 15] <<24;
   }
   return dw;
}


Stimmt das so?
PLE NP
Junior Member
Benutzer-Profile anzeigen
Junior Member


Anmeldungsdatum: 28.11.2006
Beiträge: 85

BeitragVerfasst am: 11 März 2008 - 13:15:19    Titel:

Geht das auch noch etwas einfacher?
isi1 könntest du das auch nochmal mit dem char*bintohex machen?

Und wenn es nicht zuviel mühe macht was bintohex und folgendes
for (i=0; i<4; i++, i0 >>= 4, dw >>= Cool{
dw |= vgl[i0 & 15] <<24;

heissen soll bzw die Bedeutung.
isi1
Moderator
Benutzer-Profile anzeigen
Moderator


Anmeldungsdatum: 10.08.2006
Beiträge: 7394
Wohnort: München

BeitragVerfasst am: 11 März 2008 - 14:19:15    Titel:

PLE NP hat folgendes geschrieben:
Geht das auch noch etwas einfacher?
isi1 könntest du das auch nochmal mit dem char*bintohex machen?

Und wenn es nicht zuviel mühe macht was bintohex und folgendes
for (i=0; i<4; i++, i0 >>= 4, dw >>= 8 ){
dw |= vgl[i0 & 15] <<24;

heissen soll bzw die Bedeutung.
Ja, Penelope, gerne.
Was davon leuchtet Dir nicht ein?

Verstehst Du das for-Statement?
Weißt Du, wann der blaue Teil ausgeführt wird?
Weißt Du was <<24 bedeutet?

Das char*bintohex hat Armin oben doch schon schön erklärt, Penelope - und magst Du bitte Dein Profil ausfüllen, damit wir einen Anhaltspunkt haben, wie wir Deine Vorkenntnisse einschätzen sollen?
PLE NP
Junior Member
Benutzer-Profile anzeigen
Junior Member


Anmeldungsdatum: 28.11.2006
Beiträge: 85

BeitragVerfasst am: 11 März 2008 - 16:04:55    Titel:

Also ich kann schon etwas C programmieren. Jedoch nur einfache Schleifen in denen 3 Bedingungen stehen. Bsp. for(i=0;i<=n;i++)
anfangen bei null, bis zum erreichen der zahl n, und dann i um eins erhöhen.

Sowas ist kein Problem . Was hier da aber schreibt ist mir zu kompliziert ich verstehe das nicht. Ich bin dankbar dafür, dass ihr mir helfen möchtet. Seit bitte nicht verärgert oder so. Ich bin einfach nur unwissend.

Ich stelle die Frage nochmal von Neuem:

Ich möchte ganz einfach, das jeder laie das versteht, erklärt bekommen, wie man eine Dezimalzahl in einer Hexadezimalzahl umwandelt. Das soll mit Hilfe einer Rekursion bewerkstelligt werden.
Fleischkind
Junior Member
Benutzer-Profile anzeigen
Junior Member


Anmeldungsdatum: 05.03.2008
Beiträge: 51

BeitragVerfasst am: 11 März 2008 - 17:20:26    Titel:

So ganz einfach ist das eben dann doch nicht, und bissl was selbst tun wäre meist auch angebrachter, sonst lernt man eben nix.(hi wikipedia)

habs ma schnell runtergetippt wies mir spontan einfiel(mag nich die optimalste lösung sein, sollte aber gehn), wennde den code nicht lesen kannst, kann dir hier keiner helfen

Code:
public static String conv(int zahl,String HexZahl)
   {
      if((zahl/16) != 0){
         HexZahl = conv(zahl/16,HexZahl);
         if(zahl%16>9){
            HexZahl += (char)((zahl%16)+55);
         }else{
            HexZahl += (zahl%16);
         }
      }   
      else{
         if(zahl>9){
            HexZahl += (char)((zahl)+55);
         }else{
            HexZahl += (zahl);
         }
      }
      return HexZahl;
   }


aufrufen halt aus der main mit
string bla = "";
int zahl = 286;
bla = conv(zahl,bla);
ausgabe(bla);
PLE NP
Junior Member
Benutzer-Profile anzeigen
Junior Member


Anmeldungsdatum: 28.11.2006
Beiträge: 85

BeitragVerfasst am: 11 März 2008 - 17:54:29    Titel:

Super Fleischkind das kommt der Sache schon sehr na. Danke für den Code. Ich kann den Code lesen und verstehe den sogar Laughing .

Den Rest bekomme ich selber hin. Nochmal besten Dank an jedem der mir eine Antwort gegeben hat.
Beiträge der letzten Zeit anzeigen:   
Foren-Übersicht -> Informatik-Forum -> Umwandlung von Dezimal in Hex
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2
Seite 2 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Chat :: Nachrichten:: Lexikon :: Bücher :: Impressum