#include <iostream>
using namespace std;
using namespace std;
int main()
{
int i = 1;
char *a = (char*)&i;
for(int j=0;j<=3;j++)
{
cout<<(int)*(a+j)<<endl;
}
return 0;
}
{
int i = 1;
char *a = (char*)&i;
for(int j=0;j<=3;j++)
{
cout<<(int)*(a+j)<<endl;
}
return 0;
}
1。char 1 int 4
2。需要强制类型转换 char *a = (char*)&i;
3。读 int 的第 j 字节是用*(a+j) 而不是*(a+j*8)
4。输出时需要强制类型转换(int)*(a+j)
程序不是我写的。
0001
little : 01 00
big : 00 01
当然 也有其他方法
union a{
char ch;
int in;}
a.in = 1;
cout << a.ch; //if 1, little, otherwise ,big
本文介绍了一种通过C++程序来检测计算机系统的字节序(小端或大端)的方法。利用指针和联合体(union)两种方式,演示了如何读取整数类型的每个字节,并判断其字节序。
1981

被折叠的 条评论
为什么被折叠?



