【原创】笔记:整数的循环移位

王朝other·作者佚名  2006-01-31
窄屏简体版  字體: |||超大  

// >> 十六进制16如何移位为61? (实际上就是实现把16位的整数16循环移位4位)

#include <iostream>

using namespace std;

int main() {

int n = 4; //把0x16变成0x61需要循环移动4位

char a = 0x16;

char b = a << n | a >> (sizeof(a)-n);

cout << (int)a << endl;

cout << (int)b << endl;

return 0;

}

/****************************************************

实现循环移动的计算方法:

b = a << n | a >> (sizeof(a)-n);

其中,sizeof(a)表示数据的类型,n表示要移动的位数

****************************************************/

/****************************************************

如这个:

#include <iostream>

using namespace std;

int main() {

int n = 4; //循环移动4位

short a = 0x16;

short b = a << n | a >> (sizeof(a)-n);

cout << (int)a << endl;

cout << (int)b << endl;

return 0;

}

=========

结果则为:

22

352

//sizeof(a)的长度不同,得到的结果也不相同

****************************************************/

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航