// >> 十六进制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)的长度不同,得到的结果也不相同 ****************************************************/
|