C: Förvirring om vänsterskiftning
Postat: 9 maj 2020, 12:21:48
Hej!
Jag har råkat ut för en kodsnutt som jag inte förstår varför den fungerar som den gör.
Vänsterskiftar jag en 8-bitars variabel 8 steg borde väl den bli 0b00000000?
Hade jag type-castat value till en uint16_t innan jag gjorde vänsterskiftningen hade jag förväntat mig resultatet jag får nu däremot.
Jag har råkat ut för en kodsnutt som jag inte förstår varför den fungerar som den gör.
Vänsterskiftar jag en 8-bitars variabel 8 steg borde väl den bli 0b00000000?
Hade jag type-castat value till en uint16_t innan jag gjorde vänsterskiftningen hade jag förväntat mig resultatet jag får nu däremot.
Kod: Markera allt
#include <stdint.h>
int main(void)
{
uint8_t value = 0b10101111;
uint16_t storage = value << 8;
// storage har nu värdet 0b1010111100000000 enligt debuggern.
return 0;
}