c语言小端转大端函数 c语言小端数据转换成大端

c语言实现2个字节的高低位转化

2个字节short int 高低位转化:

成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站建设、成都做网站、寿光网络推广、小程序定制开发、寿光网络营销、寿光企业策划、寿光品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供寿光建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com

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语言和java 使用socket通信的时候 数据大小端转换的问题

我也搞网络编程搞好久了,大小端这个问题倒是没有遇到过啊,我同事做Java,我做IOS都一样的,都是小端的。

建议你用抓包软件抓下包看看,还有就是注意发送时数据对齐问题,不同的系统可能一样的类型长度就不一样,比如在mac系统中long型有8字节,但是在IOS、VC中就只有四个字节,一般使用socket发送数据时都是打包发送的(头部一般都是固定的结构体),这个问题必须要注意


当前标题:c语言小端转大端函数 c语言小端数据转换成大端
网页地址:http://ybzwz.com/article/doggids.html