打印
[LKS32 硬件]

使用联合体(Union)获取高低位字节

[复制链接]
378|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
烟雨蒙蒙520|  楼主 | 2024-5-30 23:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
uint16_t word = 0xABCD; // 假设word是一个16位的字

union {
    uint16_t word;
    struct {
        uint8_t low_byte;
        uint8_t high_byte;
    } bytes;
} data;

data.word = word;

// 获取低位字节
uint8_t low_byte = data.bytes.low_byte;

// 获取高位字节
uint8_t high_byte = data.bytes.high_byte;


使用特权

评论回复
沙发
烟雨蒙蒙520|  楼主 | 2024-5-30 23:28 | 只看该作者
以上方法都可以用来获取一个字的高位和低位字节。使用位运算的方法是最直接和常见的,而使用类型转换或联合体也是一种简单有效的方法。选择哪种方法取决于个人偏好和代码的特定要求。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

406

帖子

0

粉丝