1

嗨,我正在使用 MikroC 对微控制器进行编程,并且我有这个小于 1024 (2^10bit) 的变量,我需要将其转换int value;unsigned char value8bits;并将最低有效位放入unsigned char value2bits;

我实际上在考虑使用 >> 位移不知道怎么做?所以你怎么看 ?

4

1 回答 1

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          
于 2011-06-20T02:35:32.433 回答