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
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的各字节数据。