Not logged in. · Lost password · Register

Musil
Member since Jul 2013
10 posts
Subject: 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)
Member since May 2011
331 posts
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
Member since Oct 2012
31 posts
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)
Member since May 2011
331 posts
Wohl eher
uint8_t foo = (sb_adc_read (POTI)>>2) ;
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please enter the word from the image into the text field below. (Type the letters only, lower case is okay.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O :troll:
Special characters:
Go to forum
Powered by the Unclassified NewsBoard software, 20110527-dev, © 2003-8 by Yves Goergen