c语言的移位操作

系统 1990 0

http://tieba.baidu.com/f?kz=321200798     

    左移时总是移位和补零。

    右移时无符号数是移位和补零,此时称为逻辑右移;

    而有符号数大多数情况下是移位和补最左边的位(也就是补最高有效位),移几位就补几位,此时称为算术右移。 

 

       #include<iostream>

using namespace std;

 

void main() {

//unsigned short temp = 0x8151;

short temp = 0x8151;

cout << temp << endl;

printf("%x\n", temp);

 

unsigned char buf[] = {0, 0};

 

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[] = {0, 0};

 

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[] = {0, 0};

*((short *)buf2) = temp2;

printf("%x\n", buf2[0]);

printf("%x\n", buf2[1]);

 

getchar();

 

getchar();

}

 

 

c语言的移位操作

c语言的移位操作


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论