左移時總是移位和補零。
右移時無符號數是移位和補零,此時稱為邏輯右移;
而有符號數大多數情況下是移位和補最左邊的位(也就是補最高有效位),移幾位就補幾位,此時稱為算術右移。
#include
using namespace std;
void main() ;
buf[1] = temp & 0x00ff;
temp = temp >> 8;
buf[0] = temp & 0x00ff;
//cout << buf[0] << " " << buf[1] << endl;
printf("%x\n", buf[0]);
printf("%x\n", buf[1]);
printf("%x\n", temp);
//unsigned short temp = 0x8151;
short temp1 = 0x7151;
cout << temp1 << endl;
printf("%x\n", temp1);
unsigned char buf1 = ;
buf1[1] = temp1 & 0x00ff;
temp1 = temp1 >> 8;
buf1[0] = temp & 0x00ff;
//cout << buf[0] << " " << buf[1] << endl;
printf("%x\n", buf1[0]);
printf("%x\n", buf1[1]);
printf("%x\n", temp1);
short temp2 = 0x8151;
unsigned char buf2 = ;
*((short *)buf2) = temp2;
printf("%x\n", buf2[0]);
printf("%x\n", buf2[1]);
getchar();
getchar();
C語言中的移位操作
c語言中的移位操作,內容不多。不過有些地方你不注意,就疏忽了。先做兩個小題先。1 unsigned char x 3 x 1是多少?x 1是多少?2 char x 3 x 1是多少?x 1是多少?3 char x 3 x 1是多少?x 1是多少?3寫成二進位制數是00000011 3寫成二進位制數是...
C語言中的移位操作
c語言中的移位操作,內容不多。不過有些地方你不注意,就疏忽了。先做兩個小題先。1 unsigned char x 3 x 1是多少?x 1是多少?2 char x 3 x 1是多少?x 1是多少?3 char x 3 x 1是多少?x 1是多少?3寫成二進位制數是00000011 3寫成二進位制數是...
C語言中移位操作
先要了解一下c語言裡所有的位運算都是指二進位制數的位運算。即使輸入的是十進位制的數,在記憶體中也是儲存為二進位制形式。用法 格式是 a 0。功能 將整型數a按二進位制位向左移動m位,高位移出後,低位補0。用法 格式是 a m,a和m必須是整型表示式,要求m 0。功能 將整型數a按二進位制位向右移動m...