ascii character nummer zu Char

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: https://ee.hawaii.edu/~tep/EE160/Book/chap4/_27721_table145.gif Vielen Dank schon mal. Flo S

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.