mikrocontroller.net

Forum: Offtopic Wie 16 Bit unsigned int in ASCII umwandeln?


Autor: hello world (Gast)
Datum:

Bewertung
-2 lesenswert
nicht lesenswert
Welche Möglichkeiten gibt es, eine 16 Bit unsigned int Variable in ASCII 
umzuwandeln?

Schon mal Danke für alle Tipps.

: Verschoben durch Moderator
Autor: Ingo Less (corrtexx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dafür gibt es die Funktion "utoa".

Autor: Ulf L. (ulf_l)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Am einfachsten als HEX-Wert in dem man ein Array von "0" bis "F" macht 
und jeweils ein nibble als Array-Index nimmt.

Gruß Ulf

Autor: hello world (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ingo L. schrieb:
> Dafür gibt es die Funktion "utoa".

Ich benutze den XC16-Compiler von Microchip, dort gibt es diese Funktion 
offensichtlich nicht.

Autor: Dumpf Backe (Gast)
Datum:

Bewertung
-2 lesenswert
nicht lesenswert
Ulf L. schrieb:
> Am einfachsten als HEX-Wert in dem man ein Array von "0" bis "F" macht
> und jeweils ein nibble als Array-Index nimmt.

.... und du meinst dass ein Anfänger das versteht?

Autor: hello world (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte z.B. aus dem Wert 0x000A den Ausgabewert in ASCII "00010" 
machen.

Autor: m.n. (Gast)
Datum:

Bewertung
5 lesenswert
nicht lesenswert
Übermorgen vor 13 Jahren gab es dies: 
Beitrag "schnelle Wandlung long -> ASCII"

Autor: Dumpf Backe (Gast)
Datum:

Bewertung
-7 lesenswert
nicht lesenswert
m.n. schrieb:
> Übermorgen vor 13 Jahren gab es dies:
> Beitrag "schnelle Wandlung long -> ASCII"

Themaverfehlung. Setzen, sechs.

Dumpf Backe schrieb:
> .... und du meinst dass ein Anfänger das versteht?

Autor: m.n. (Gast)
Datum:

Bewertung
3 lesenswert
nicht lesenswert
Dumpf Backe schrieb:
> Themaverfehlung. Setzen, sechs.

Nomen est omen!
;-)

Autor: Dumpf Backe (Gast)
Datum:

Bewertung
-2 lesenswert
nicht lesenswert
hello world schrieb:
> Ich möchte z.B. aus dem Wert 0x000A den Ausgabewert in ASCII "00010"
> machen.

Habe jetzt, kaum eine halbe Stunde später, eine Lösung gefunden.
Jetzt muss ich erst mal Pause machen ....
#include <stdio.h>

int main()
{
    unsigned short  value;

    value = 0x000A;
    printf ("%05u \r\n", value);
    
    return 0;
}

Autor: Ingo Less (corrtexx)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Dumpf Backe schrieb:
> Habe jetzt, kaum eine halbe Stunde später, eine Lösung gefunden.
Deine Lösung passt nicht zu deiner Frage. Die Frage zu deiner Lösung 
wäre: "Wie gebe ich einen uint16_t als String über printf (wo auch immer 
der hinführt) aus?".

Autor: Jens G. (jensig)
Datum:

Bewertung
-3 lesenswert
nicht lesenswert
>Ich möchte z.B. aus dem Wert 0x000A den Ausgabewert in ASCII "00010"
>machen.

Das entspricht aber nicht der ursprünglichen Aufgabenstellung, sondern 
ist eine reine Wandlung hex->dec.
00010 ist genauso viel ASCII wie 0x000A ...

: Bearbeitet durch User
Autor: Mi No (msx)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Jens G. schrieb:
> 00010 ist genauso viel ASCII wie 0x000A ...

Schon, aber "0010" ist eine ASCII-Zeichenkette aus 0x30 0x30 0x31 0x30 
ggf. noch mit 0x00 terminiert.
Oder erwartest Du bei der Wandlung als Ergebnis "zehn"?

Warum dieser Beitrag nach OT 'verrutscht' ist weiß vermutlich auch nur 
eine Laus auf irgendeiner Leber.

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Bewertung
-3 lesenswert
nicht lesenswert
Jens G. schrieb:
> 00010 ist genauso viel ASCII wie 0x000A ...


nee, 00010 ist genauso viel wie 0x0008
http://tpcg.io/EWrbdJ (tutorial point online C compiler)

: Bearbeitet durch User
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, Yahoo oder Facebook? Keine Anmeldung erforderlich!
Mit Google-Account einloggen | Mit Facebook-Account einloggen
Noch kein Account? Hier anmelden.