Hi,
wie kann ich eine ascii Nummer in ein Char umwandeln?
z.B.
97 in ein a
98 in ein b
...
...
...
also sowas wie diese ASCII Tabelle:
Vielen Dank schon mal.
Flo S
Hi,
wie kann ich eine ascii Nummer in ein Char umwandeln?
z.B.
97 in ein a
98 in ein b
...
...
...
also sowas wie diese ASCII Tabelle:
char buchstabe = 97;
Hallo,
ich weiß jetzt nicht ganz genau was Du willst. Alle Zeichen werden intern als byte verarbeitet. Ob wir Menschen das als Bustaben lesen können ist eine Frage der Darstellung und ob es sich um ein darstellbares Zeichen handelt.
umwandeln geht mit der function char()
siehe Hilfe Referenz in der IDE
Ich vermute mal Du willst eine ASCI Tabelle ausgeben :
Heinz
Beispiel
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
char zeichen;
// put your main code here, to run repeatedly:
for ( byte i = 32; i <= 128; i++) {
;
Serial.print(i); Serial.print("\t");
zeichen = char(i);
Serial.println(zeichen);
// Serial.println(char(i));// oder auch so
delay(100);
}
delay (2000);
}
umwandeln geht mit der function char()
Auch wenn ich jetzt etwas pingelig erscheine.... aber eine Funktion ist das nicht.
Es ist genau das, welches ich bei meinem Vorschlag
char buchstabe = 97;
auch einsetze.
Und da wird es doch mehr als deutlich, dass es keine Funktion sein kann.
Und da wird es doch mehr als deutlich, dass es keine Funktion sein kann.
Dass in deinem Beispiel
char buchstabe = 97;
char ein Datentyp ist, sehe ich.
Aber wo sehe ich im Ausdruck char (97)
, dass das keine Funktion ist, und dass beides dasselbe ist? Und das auch noch mehr als deutlich ?
Aber wo sehe ich im Ausdruck char (97), dass das keine Funktion ist,
Z.B. im "siehe Hilfe Referenz in der IDE" Beitrag steht, dass es ein cast ist.
Es ist also eine Typenkonvertierung, keine Funktion.
Völlig konform mit der C++ Doku.
Ein kleiner Test würde zeigen, dass diese Funktionsschreibweise auch mit selbstdefinierten Datentypen funktioniert, ohne dass man eine Funktion dafür schreiben müsste.
Es ist genau das, welches ich bei meinem Vorschlag
Ein cast.
Bei mir ein impliziter cast von int zu char.
Völlig gleichwertig (in der Wirkung):
void setup()
{
Serial.begin(9600);
Serial.println("Start");
int numerischeRepraesentation = 97;
char c1 = numerischeRepraesentation; // impliziter cast
char c2 = (char)numerischeRepraesentation; // expliziter cast
char c3 = char(numerischeRepraesentation); // expliziter cast
char c4 = static_cast<char>(numerischeRepraesentation); // moderner expliziter cast
Serial.println(c1);
Serial.println(c2);
Serial.println(c3);
Serial.println(c4);
}
void loop()
{
}
Sie sehen, keine Funktion!
Nur eine der Varianten sieht wie eine Funktion aus.
eine der Varianten sieht wie eine Funktion aus.
Dann sind wir uns ja einig
War übrigens einer deiner besseren Beiträge.