2011-06-20 15 views
1

こんにちは私はMikroCを使用してマイクロコントローラをプログラミングしていますが、1024(2^10bit)そのint value;unsigned char value8bits;に変換し、私は実際にどのように、まだ分からない>>ビットシフトを使用して考えていたunsigned char value2bits;1024より小さい10進数を8ビットの2つの変数に変換し、Cを使用する2つの他の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   
関連する問題