Forum: Mikrocontroller und Digitale Elektronik dez in hex


von kurt (Gast)


Lesenswert?

Hi!!

Ich brauche eure Hilfe! Ich hab seit kurzem mit dem Programm µvision2
angefangen und wollte euch fragenob mir nicht jemand ein Programm
schcken kann dass eine dezimalzahl in hex ausgibt!

vielen dank im voraus

von Carsten (Gast)


Lesenswert?

Der Windows eigene Taschenrechner kann das.

von kurt (Gast)


Lesenswert?

Hi Carsten!

danke das weis ich selber aber ich will ein programm schreiben dass das
selbe wie der tschenrechner macht!

von peter dannegger (Gast)


Lesenswert?

1
for(;;)
2
{
3
  unsigned short val;
4
5
  scanf("%d", &val);
6
  printf("%04X\n", val );
7
}


Peter

von kurt (Gast)


Lesenswert?

danke peter!

aber ich will befehle die mit dem mikrokontroller gehn verwenden z.B.
mov, push usw.

von peter dannegger (Gast)


Lesenswert?

Dann ist es etwas mehr Schreibarbeit:

http://home.tiscali.de/peterd/appl/soft/arithmet/index.htm


Peter

von kurt (Gast)


Lesenswert?

danke peter

aber welche datei soll ich verwenden oder ist das schon das programm??
geht es nicht einfacher??

vielen dank im voraus

von Karl H. (kbuchegg)


Lesenswert?

Wenn du das Prinzip verstanden hast, dann kannst Du
das doch selbst programmieren.

Das Prinzip ist ganz einfach.

   68867 dezimal hat welche Hex Darstellung:

   68867 / 16 =  4304  Rest    3
    4304 / 16 =   269  Rest    0
     269 / 16 =    16  Rest   13
      16 / 16 =     1  Rest    0
       1 / 16 =     0  Rest    1

 d.h. die Hex Darstellung lautet:  1 0 13 0 3
 Nun gibt es aber in Hex keine Zahl 13, dafuer schreiben wir 'D'
 und erhalten

    68867 dez  <==>  10D03 hex

von Profi (Gast)


Lesenswert?

Liegt die Dez-Zahl in BCD oder als String oder binär vor?
Welcher Wertebereich?

Byte z.B.:
unsigned char dez=0xAB;
printf("%c%c",'0'+dez/16+(dez/16>9?7:0),'0'+(dez&15)+(dez&15>9?7:0));

printf("%c%c",'0'+dez/16+(dez/16>9?39:0),'0'+(dez&15)+(dez&15>9?39:0));
bringt kleine Buchstaben a..f

Das sollte sehr einfach in Assembler umzusetzen sein.

Word (16bit) muss man halt in 2 Bytes aufteilen.

von Karlo (Gast)


Lesenswert?

Man Kurt bleibt bei VisualBasic hier biste falsch.Glaubs ja nich soviel
Dummheit auf so wenig Platz...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.