uint16_t Array mit int16_t Werten füllen

Gast #2840246
Lesenswert?
• ▲
▼
moin,

kurze Frage:

Kann ein Array

>uint16_t Array[20];

mit negativen Werten

>Array[1] = 10-100; //Beispiel

gefüllt werden, oder werden die Ergebnisse dann falsch dargestellt?
Mein Compiler gibt keine Warnhinweise, mglw. ist dies jedoch Ursache 
dafür, dass das Programm gerade nicht das tut was es soll...

mfg
Persönliche Seite #2840248
Lesenswert?
• ▲
▼
Array schrieb:
> oder werden die Ergebnisse dann falsch dargestellt

Definiere, was "falsch dargestellt" bedeutet.

Wenn Du ein Element des Array als uint16_t betrachtest, wird es die 
Regeln für uint16_t einhalten; Dein als negativer int16_t-Wert 
beschriebenes Element enthält natürlich keinen negativen uint16_t-Wert, 
da es so etwas nicht gibt.

Im übrigen hat die Betrachtung nichts mit Arrays zu tun, sondern kann 
auf die Unterscheidung unsigned/signed reduziert werden.
#2840253
Lesenswert?
• ▲
▼
Das geht schon. Es steht dann in beiden das gleiche drin (also 0xFFA6).
Jedoch kannst du beim uint16 array dann nicht auf "< -10" testen. Dafür 
musst du dann erst nach int16 casten, also z.B. so:
1
    int16_t x;
2
    uint16_t y;
3

4
    x = 10-100;
5
    y = 10-100;
6

7
    if(x < -10)
8
        printf("\nx ist kleiner -10");
9
    if((int16_t)y < -10)
10
        printf("\ny ist kleiner -10"");
wenn du den Cast bei "y" weglässt wird halt nicht "y ist kleiner -10"" 
ausgegeben weil der Compiler eben denkt, dass "< 0" nicht geht weil y ja 
unsigned ist.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.