c语言大端转小端函数 c语言 大端小端
请写一个C函数,判断处理器是大端存储还是小端
【转】
成都创新互联是网站建设技术企业,为成都企业提供专业的成都网站设计、做网站,网站设计,网站制作,网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制适合企业的网站。十载品质,值得信赖!
void IsBigEndian()
{
short int a = 0x1122;//十六进制,一个数值占4位
char b = *(char *)a; //通过将short(2字节)强制类型转换成char单字节,b指向a的起始字节(低字节)
if( b == 0x11)//低字节存的是数据的高字节数据
{
//是大端模式
}
else
{
//是小端模式
}
}
c语言实现2个字节的高低位转化
2个字节short int 高低位转化:
short int y=0x7f21;
y = ( (y 0xff00) 8) | ( (y 0x00ff ) 8);
printf("%#x",y);
-------------------------------
也可以利用 union
union B2
{
short int i;
unsigned char c[2];
// 。。。任意两字节类型
} ;
union B2 x;
unsigned char tmp;
x.i=0x1234;
tmp = x.c[0]; x.c[0]=x.c[1];x.c[1]=tmp;
// 也可以用上面的位运算方法交换高低端
printf("%#x\n",x.i);
// union 方法特别适合4字节8字节 大端小端码的转换操作。
结构体数据大小端转换 C语言
可以使用位域来定义,同时来转换。例如一个32位int型可以如下定义:
struct test
{
union
{
int bits_4;
struct
{
int bit1 : 8;
int bit2 : 8;
int bit3 : 8;
int bit4 : 8;
};
};
};
将test.bit1和test.bit4对调,test.bit2和test.bit3对调即可。
当前标题:c语言大端转小端函数 c语言 大端小端
当前URL:http://scjbc.cn/article/dosojdc.html