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;
}