清晰解读C语言中的比特序、字节序、位域、大小端

本文详细介绍了C语言中的比特序(位序)概念,包括LSB 0 和 MSB 0 位序,并通过实例解释了它们的区别。接着,文章探讨了字节序和大小端模式,阐述了它们在多字节数据存储中的应用,并提供了判断系统大小端的方法。最后,讨论了位域的存储规则,指出位域的分配与系统字节序的关系。
摘要由CSDN通过智能技术生成
一、比特序/位序

比特序表示一个字节中8个比特位(bit)之间的顺序问题。分为LSB 0 位序MSB 0 位序

LSB:最低有效位 MSB:最高有效位

LSB(least significant bit) 0位序:数据的最低位存放在字节的第0位

MSB (most significant bit) 0位序:数据的最高位存放在字节的第0位

例如有一个十进制的数为174,对应的二进制数为1010 1110.

1.在LSB 0 位序下,其存储形式如下图:

数据流的顺序为0-1-1-1-0-1-0-1

2.在MSB 0 位序下,其存储形式如下图:

数据流的顺序为1-0-1-0-1-1-1-0

CPU存储数据操作的最小单位是一个字节(Byte),其内部的比特序对程序员并不可见。

二、字节序和大小端

只有多字节数据存储时才会考虑大小端。

数据的高字节保存在内存的低地址,称为大端模式(大端序)

数据的高字节保存在内存的高地址,称为小端模式(小端序)

对于大端模式,一个占有4个字节类型的数据0x00112233在内存中如下分布:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

何小胖的嵌入式学习之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值