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


von hello world (Gast)


Lesenswert?

Welche Möglichkeiten gibt es, eine 16 Bit unsigned int Variable in ASCII 
umzuwandeln?

Schon mal Danke für alle Tipps.

: Verschoben durch User
von Ingo L. (corrtexx)


Lesenswert?

Dafür gibt es die Funktion "utoa".

von Ulf L. (ulf_l)


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

von hello world (Gast)


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.

von Dumpf Backe (Gast)


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?

von hello world (Gast)


Lesenswert?

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

von m.n. (Gast)


Lesenswert?

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

von Dumpf Backe (Gast)


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?

von m.n. (Gast)


Lesenswert?

Dumpf Backe schrieb:
> Themaverfehlung. Setzen, sechs.

Nomen est omen!
;-)

von Dumpf Backe (Gast)


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 ....
1
#include <stdio.h>
2
3
int main()
4
{
5
    unsigned short  value;
6
7
    value = 0x000A;
8
    printf ("%05u \r\n", value);
9
    
10
    return 0;
11
}

von Ingo L. (corrtexx)


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?".

von Jens G. (jensig)


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
von Mi N. (msx)


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.

von Vlad T. (vlad_tepesch)


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? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.