Umwandlung von zahl in ascii funktion verstehe nicht

#3706798
Lesenswert?

Hallo allen, wie schon im betreff gesagt, ich verstehe diese Funktion 
nicht, oder eher gesagt, ich verstehe diese teilweise. Auf dem lcd soll 
dann dieser wert rauskommen: C0.
Kann mir bitte jemand erklaeren, wie dieser wert zu stande kommt. Weil 
vor der "C" mus es ja noch irgend ein wert geben, und wie es dann mit 
dem lower nibble funktioniert, ich kopiere es einfach nicht. Kann mir 
bitte jemand helfen?
Gast #3706833
Lesenswert?

Schau halt in einer ASCII-Tabelle nach. Auf Wikipedia findest du auch 
eine. Sogar mit Hex-Spalte.

Allerdings kann man in C auch gleich das Zeichen hin schreiben:
1
return digit + '0';
entsprechend für das 'A'
#3706885
Lesenswert?

DirkB, ich habe im ascii nachgeschaut, und was in int2ascii steht, 
verstehe ich auch. Aber schau, da ist ein achtstelliger code im value.
So danach verschiebe ich um vier stellen nach rechts und bekomme den 
oberen nibble.
Danach konvertiere ich in ascii und wird in index 0 reingeschrieben, 
aber beim ausgeben erscheint dieser nicht.
Das ist das eine.
Danach gehe ich weiter, und was passiert bei "i=value&0x0F" verstehe ich 
nicht
Gast #3706902
Lesenswert?

Dan Hushaev schrieb:
> Ok, habe jetzt den anhang geaendert

Dafür ist kein Anhang nötig. Die paar Zeilen kannst du auch hier rein 
kopieren und zwischen die c-Tags setzten, so wie es direkt über dem 
Edit-Feld unter Formatierung steht.

Dann könnte man deinen Code nehmen und kommentieren.

Wenn der Code länger ist, dann hänge ihn als Code an und nicht als Bild.



Bei i=value&0x0F ist & das binäre und und bei 0xf sind die untersten 4 
Bit alle auf 1 gesetzt.
Damit bekommst du nur die untersten 4 Bits aus value. Das Ergebnis wird 
nach i geschrieben.

Dan Hushaev schrieb:
> aber beim ausgeben erscheint dieser nicht.

Wie rufst du denn die Funktion auf. Ist im char-Array genug Platz?
#3706915
Lesenswert?

Ok DirkB, also ist der 0011 bei mir dann der lower nibble, und wie komme 
ich dann auf den upper nibble. Weil ich dachte, wenn ich um vier stellen 
nach rechts verschiebe, dann fallen die ersten vier ziffern raus, d.h., 
wenn ich 0110 0011 habe, faelt bei mir 0110 raus, und 0011 ist 
geblieben. Deshalb habe ich gedacht, dass die rechte haelfte des codes 
der upper nibble ist, und die linke seite des codes, der lower nibble
Gast #3706920
Lesenswert?

Das steht doch aber >> (rechts schieben)


0110 0011 mir 4 Stellen nach rechts kommt dann 0000 0110  und das ist 
dann  0x06

Du willst ja auch die linke Stelle zuerst haben.

value bleibt davon unberührt, da das Ergebnis in i abgespeichert wird.
Gast #3706974
Lesenswert?

@Dan

Schmeiß doch mal den Taschenrechner an.
Sowohl der von Windoof als auch der im Linux hat einen "Programmierer 
Modus".

Da kannst Du dir, im wahrsten Sinne des Wortes, ansehen was mit den 
einzelnen Werten passiert, wenn Du sie z. B. verschiebst.

Auch die Dezimalen, binären und sedezimalen Äquivalente kannst Du Dir 
jederzeit reinziehen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren