64,654
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <bitset>
using namespace std;
int main()
{
int a = 2147483647;
int b = 32767;
cout << &a << ' ' << &b << endl;
short p = *(short*) &b;
cout << p << endl;
unsigned long nMem;// 临时变量,用于存储数的内存数据
// 将内存按位复制到临时变中,以便取用,此时的nMem并不等于b了,它是按位复制的。
nMem = *(unsigned long*)&b;
cout<<nMem<<endl; //一般得到一个很大的整数.
bitset<32>mybit(nMem);//妙在此处,这里的输出就是32位二进制的内存表示了.终于完全直观地看到了.
cout<<mybit<<endl;
cout<< sizeof(short) <<endl;
system("pause");
return 0;
}
int a = 2147483647;
int b = 32767; // lz可以将此处改为32768或者更大的数,看看,想想,估计就明白了!
cout<< sizeof(short) <<endl;
cout << &a << ' ' << &b << endl;
short p = *(short*) &b;
cout << p << endl;
int a = 2147483647;
int b = 32767;
cout<< sizeof(short) <<endl;
cout << &a << ' ' << &b << endl;
short p = *(short*) &b;
cout << p << endl;