Posted on 2006-06-17 01:11
魔のkyo 阅读(2285)
评论(10) 编辑 收藏 引用 所属分类:
Programming
貌似C++/C中内存都是一个字节一个字节“倒着”用的
如,整数1,应该为00000000 00000000 00000000 00000001
而在内存中会被这样放 00000001 00000000 00000000 00000000
下面是一个将变量按位输出的程序,就是在写这个程序的时候发现的这个问题
#include <iostream>
using namespace std;
template <class T>
void printbybit(const T& ob)
{
char *p_e=(char *)&ob;
char *p=p_e+sizeof(T)-1;
for(;p>=p_e;p--){
for(int i=7;i>=0;i--){
cout<<(((*p)&(1<<i))?1:0);
}
}
}
int main()
{
int x;
x=65;
printbybit(x);
cout.put('\n');
char ch='A';
printbybit(ch);
cout.put('\n');
double lf=1;
printbybit(lf);
cout.put('\n');
system("pause");
}