c語言的移位操作

2021-08-31 17:12:00 字數 987 閱讀 3097

左移時總是移位和補零。

右移時無符號數是移位和補零,此時稱為邏輯右移;

而有符號數大多數情況下是移位和補最左邊的位(也就是補最高有效位),移幾位就補幾位,此時稱為算術右移。 

#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...