社区
驱动开发/核心开发
帖子详情
C语言位域以及大小端的问题
学渣上确界
2017-10-26 09:52:43
C语言中有如下结构体
struct A
{
int a:4;
int b:4
}
现在小端机器上将A看成一个字节,解码得69(01000101),那么请问在实际的内存中69是如何按比特排序的并且对应到a,b的?
如果此事是在大端机里面又是如何布局的呢?
...全文
934
4
打赏
收藏
C语言位域以及大小端的问题
C语言中有如下结构体 struct A { int a:4; int b:4 } 现在小端机器上将A看成一个字节,解码得69(01000101),那么请问在实际的内存中69是如何按比特排序的并且对应到a,b的? 如果此事是在大端机里面又是如何布局的呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fuchouzhe
2017-11-01
打赏
举报
回复
C标准中没有规定位域分布的方式,大小端针对处理器体系,与C语言无关,Power和ARM部分处理器可以通过软件设置处理器大小端。 但位域中的数据确有大小端问题,可以将位域看做独立的整数进行处理,例如你的变量a虽然占4位,但这4位的大小端与处理器必然相关。
worldy
2017-10-27
打赏
举报
回复
0100
0101
应该是45不是69吧
a在低4位,b在高4位,你这个没存在大小端的问题,只有大于一个字节的才有大小端的说法
tianxj001
2017-10-27
打赏
举报
回复
理论上,位域用法。是按照由低到高来分配一个字段的。和所谓大小端格式无关。你这个例子,a占低四位,b占高四位。就那么简单。
tianxj001
2017-10-27
打赏
举报
回复
你这个定义的,int 是16位,你这里用位域定义了4位? 对于一个单8位的字节来说,无所谓大小端,这个你可要明白,只有int类型以上,才有大小端格式一说 结构体,理论上,先存储,先占位,最后的整个结构体当一个数据时候的结果,会根据大小端数据格式,和初始化数据顺序,有4种改变。至于推定到char类型,是不是也是这个规则,那还真没有测试过。
关于
大小端
、
位域
的一些概念详解
大小端
: 对于像C++中的char这样的数据类型,它本身就是占用一个字节的大小,不会产生什么
问题
。但是当数制类型为int,在32bit的系统中,它需要占用4个字节(32bit),这个时候就会产生这4个字节在寄存器中的存放...
C语言
字节序比特序
1、
大小端
的概念;2、结构体和联合体存储方式;3、
位域
的概念。
C++面试资料,认真看完6K应该没
问题
我看过的一些面试总结之类,好好的看完,应该是有帮助的,内存对齐,
大小端
问题
,
位域
,线程同步,指针的各种变型,SQL中存储过程,行列转换(网上去找),这些都是最最基础的
问题
c语言
位域
操作与
大小端
那些事
二、结构体
位域
操作与
大小端
那些事 1、不考虑
位域
对齐情况下的存储结构 某几个数据位的和小于其数据类型时,即依照下面结构体(b1+b2+b3+b4+b5 定义结构体如下: struct BitOperationType{ int b1:1; int b2:2; int...
C语言
之什么是
大小端
,数组
大小端
,
位域
大小端
,结构体
大小端
C语言
之什么是
大小端
,数组
大小端
,
位域
大小端
,结构体
大小端
驱动开发/核心开发
21,595
社区成员
21,708
社区内容
发帖
与我相关
我的任务
驱动开发/核心开发
硬件/嵌入开发 驱动开发/核心开发
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章