1

hi I'm programming a microcontroller using MikroC, and I have this variable which is less than 1024 (2^10bit) and I needed to convert that int value; to unsigned char value8bits; and put the least significant bits in the unsigned char value2bits;

I was actually thinking of using >> bit shifting don't know how yet? so what do you think ?

Eng.Fouad
  • 115,165
  • 71
  • 313
  • 417
Ismail Marmoush
  • 13,140
  • 25
  • 80
  • 114

1 Answers1

5
10bitvar = 956;

8bitvar = (10bitvar >> 2) & 0xff;
2bitvar = (10bitvar & 0x03);



10bitvar        =    1 1 1 0 1 1 1 1 1 0
(10bitvar >> 2) =    ? ? 1 1 1 0 1 1 1 1
    &                    & & & & & & & &
  0xff          =        1 1 1 1 1 1 1 1      
                        ----------------
8bitvar                  1 1 1 0 1 1 1 1


10bitvar        =    1 1 1 0 1 1 1 1 1 0
    &                    & & & & & & & &
  0x03          =        0 0 0 0 0 0 1 1      
                        ----------------
2bitvar                  0 0 0 0 0 0 1 0          
phoxis
  • 60,131
  • 14
  • 81
  • 117