Nicht angemeldet. · Kennwort vergessen · Registrieren

Musil
Mitglied seit 07/2013
10 Beiträge
Betreff: Wertebereichüberschreitung einer uint Variable
was würde hier passieren?
uint8_t i = 999;
uint8_t j = -3;
uint8_t a = 255;
a+= 3000;
hat a dann den Wert (255+3000)%256 ?
Aber was würde bei den Zuweisungen passieren?
morty
SPiC-Meister
(Moderator)
Mitglied seit 05/2011
331 Beiträge
Bei den Zuweisungen bekommst du mit Glück eine Warnung des Compilers. Ansonsten wird einfach das niederwertigste Byte kopiert.
999 = 0x3E7 => 0xE7 = 231
-3 ist binär 0b11111101 dargestellt => 253
King-Chris
Mitglied seit 10/2012
31 Beiträge
Irgendwo habe ich aber mal folgendes gemacht : War das dann falsch ?

uint8_t=(sb_adc_read (POTI)<<2)

Damit sollten nur die Höherwertigen Bytes des 10 bit Werts vom ADC Read kopiert werden.

Habe ich da was falsch im Kopf bzw. ist das so falsch und geht nicht ?
morty
SPiC-Meister
(Moderator)
Mitglied seit 05/2011
331 Beiträge
Wohl eher
uint8_t foo = (sb_adc_read (POTI)>>2) ;
Schließen Kleiner – Größer + Auf diesen Beitrag antworten:
Prüfcode: VeriCode Gib bitte das Wort aus dem Bild ins folgende Textfeld ein. (Nur die Buchstaben eingeben, Kleinschreibung ist in Ordnung.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O :troll:
Weitere Zeichen:
Gehe zu Forum
Powered by the Unclassified NewsBoard software, 20110527-dev, © 2003-8 by Yves Goergen