写程序判定大小端及利用位运算进行大小端转化

大小端问题

Short a= 15; //在内存中是一个字节一个字节的存储

高字节 0000 0000

低字节 0000 1111

15在内存中的存储

0

0

0

0

0

0

0

0

0

0

0

0

1

1

1

1

小端

低地址

高地址

0000

1111

 0000

0000

 

 

 

大端

低地址

高地址

0000

0000

 0000

1111

 

 

 

大端换成小端不用库函数用位运算

a = 1010 0011  1111 0000  1010 0101  1100 0011  

大端 10100011   11110000   10100101  11000011

小端 11000011   10100101   11110000  10100011

 

(a&0xff000000)>>24| (a&0x00ff0000)>>8|(a&0x0000ff00)<<8|(a&0x000000ff)<<24

写程序判断大小端

typedef union

{

     Char a;

     Int b;

} DATE;

DATE  A;

A.b = 1;

Printf(%d,A.a);//A.a是看charint型共用的那个部分

0 小端

1 大端

 

该共用体总共占了4个字节

低地址

高地址

Char

Int 都低地址开始存,最共用的是这个字节

 

 

 

 

 

 

 假如是大端

低地址

高地址

0000

0000

 0000

0001

 

 

假如是小端

低地址

高地址

0000

0001

 0000

0000

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值