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