打印
[牛人杂谈]

大小端测试的方法

[复制链接]
523|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
#include"stdio.h"
typedef struct
{
        unsigned char b:4;
        unsigned char c:4;
}tow;

typedef union TWO
{
unsigned char a;
tow yy;
};
void main(void)
{
        union TWO xx;
        xx.a=0x35;
        printf("b=%d\n",xx.yy.b);
        printf("c=%d\n",xx.yy.c);       
        while(1);
}


使用特权

评论回复
沙发
zhuotuzi|  楼主 | 2020-2-25 20:13 | 只看该作者
结构体中是两个4BIT,那么总体站位是8BIT,一个字节,联合体与一个字节并列内存,所以两个4BIT分别占用了地址的低4位和高四位。

大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。
小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。

使用特权

评论回复
板凳
zhuotuzi|  楼主 | 2020-2-25 20:14 | 只看该作者
根据这个定义应该是小端模式。

使用特权

评论回复
地板
zhuotuzi|  楼主 | 2020-2-25 20:15 | 只看该作者
低地址数据在前。

使用特权

评论回复
5
幸福小强| | 2020-2-25 21:37 | 只看该作者
方法新奇,有没有一劳永逸的方法。

使用特权

评论回复
6
幸福小强| | 2020-2-25 21:47 | 只看该作者
这个方法是不对的,应该是小端,不是看位,而是看字节与字的关系。

使用特权

评论回复
7
幸福小强| | 2020-2-25 21:47 | 只看该作者
#include"stdio.h"
typedef struct
{
        unsigned char b;
        unsigned char c;
}tow;

typedef union TWO
{
unsigned int a;
tow yy;
};
void main(void)
{
        union TWO xx;

        xx.a=0x3521;

       
        while(1);
}

使用特权

评论回复
8
幸福小强| | 2020-2-25 21:48 | 只看该作者

放在前面的低地址存放了高字节的内容。

使用特权

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

本版积分规则

201

主题

3315

帖子

7

粉丝