嗨,我正在用MikroC编程一个微控制器,我有一个小于1024(2^10位)的变量,我需要把这个int value;转换成unsigned char value8bits;并把最低有效位放入unsigned char value2bits;
我真的在考虑使用>>位移位不知道怎么用你觉得呢?

最佳答案

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

关于c - 使用C将小于1024的十进制转换为两个具有8位的变量,另一个具有2的变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6406311/

10-13 05:54