六六互联

内存共享应用案例

break-word; clear: both; text-indent: 2em; color: rgb(24, 30, 51); font-family: PingFangSC, 微软雅黑, 黑体, Arial, Helvetica, sans-serif; font-size: 18px; background-color: rgb(255, 255, 255); line-height: 2;">如何读取long类型变量x的每一个字节的数据

break-word; clear: both; text-indent: 2em; color: rgb(24, 30, 51); font-family: PingFangSC, 微软雅黑, 黑体, Arial, Helvetica, sans-serif; font-size: 18px; background-color: rgb(255, 255, 255); line-height: 2;">1、方法一:利用运算如:

(1)低1位字节:x%256,或x&0xFF

(2)低2位字节:x/256%256,或(x>>8)&0xFF

(3)低3位字节:x/256/256%256,或(x>>16)&0xFF

(4)最高位字节:x/256/256/256,或(x>>24)&0xFF

2、方法二:利用指针变量。如:

char *p=&x;

内存共享应用案例

则由*p、*(p+1)、*(p+2)、*(p+3)可读写x的各字节数据

3、方法三:利用共用体。如:

union UD{unsigned char a[4];long v;}

union UD x;

x.v=123456;



则:x.a[0]、x.a[1]、x.a[2]、x.a[3]可读写x.v的各字节数据。


相关推荐