Magnus_K skrev:Ja just det! Och tack vare att vi skiftat en byte uppåt så är den nedre byte:n redan "rensad", dvs 0000 0000. Då går det bra med |= eller +=.
Om det hade varit risk för skräp-data där så hade vi först fått rensa den och sedan skriva?
Precis och ja, då hade man först "maskat av" de lägre 8 bitarna genom att AND:a med 0xff00 som är ett 16-bitars tal i hexadecimal notation med samtliga sina övre 8 bitar satta. Sen hade man OR:at in BUF.
Magnus_K skrev:Hänger inte med på 0xfff-biten än men jag ska inte ta mer tid från dig än jag redan gjort på att förklara detta. Nu har jag nog kött på benen för att grotta själv
Varje grupp om 4 bitar av ett tal (kallas "nibble") motsvarar, från vänster till höger 0xf000, 0x0f00, 0x00f0 och 0x000f i ett 16-bitars tal. Om du kombinerar (summera eller OR:a) de sista tre får du 0x0fff (eller kompaktare skrivet 0xfff) som alltså omfattar de tre lägsta nibblarna, dvs de lägsta 4 + 4 + 4 = 3 x 4 = 12 bitarna.
Testa t.ex. att mata in vart och ett av 0x0f00, 0x00f0 och 0x000f i miniräknaren i Hex-läget och växla till binärläge mellan varje så ser du vilka bitar som är satta i respektive fall.