判断大小端字节序的两种方法

        字节序是字节在内存中存放顺序,分为大端存储与小端存储,那么如何通过代码来查看当前环境下的大小端字节序呢?本文采用两种方法,一是通过指针,二是通过联合体实现。以下以一个例子说明:

 方法一指针:

        指针方法还是比较容易理解的,如何拿到int型的低位字节,只需要把i的地址强转成char*的指针,我们知道char*指针访问内存时是一个字节一个字节访问,再解引用就能拿到低位的一个字节的数据。

代码实现

// 指针
int check_fun1()
{
    int i=1;
    return *((char*)(&i));
}

方法二联合体:

        联合体实现还是比较有意思的,联合体成员有意思的一点是共用空间,一个联合体变量的大小至少是最大成员的大小。我们可以定义一个联合体,成员一个为cha类型,另一个为int型,只需要将int型成员初始化为1,然后返回char型成员就可以,返回1为小端,返回0为大端。

 

代码实现

// 联合体
int check_fun2()
{
    union uu
    {
        char a;
        int b;
    }u;
    u.b=1;
    return u.a;
    
}

 两种方法测试:

#include <stdio.h>

// 指针
int check_fun1()
{
    int i=1;
    return *((char*)(&i));
}

// 联合体
int check_fun2()
{
    union uu
    {
        char a;
        int b;
    }u;
    u.b=1;
    return u.a;
    
}
int main()
{
    int ret1=check_fun1();
    int ret2=check_fun2();
    if(ret1==1)
    {
        printf("小端\n");
    }
    else
    {
        printf("大端\n");
    }
    if(ret2==1)
    {
        printf("小端\n");
    }
    else
    {
        printf("大端\n");
    }
    return 0;
}

运行结果:

vscode测试本机为小端存储

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
计算机应用基础B判断题(20210414121631)全文共6页,当前为第1页。计算机应用基础B判断题(20210414121631)全文共6页,当前为第1页。计算机应用基础B判断 题 计算机应用基础B判断题(20210414121631)全文共6页,当前为第1页。 计算机应用基础B判断题(20210414121631)全文共6页,当前为第1页。 集团标准化小组:[VVOPPT-JOPP28-JPPTL9&LOPPNN] 判断 模拟计 算机同样能处理数字信息。 错误 计算机应用基础B判断题(20210414121631)全文共6页,当前为第2页。计算机应用基础B判断题(20210414121631)全文共6页,当前为第2页。第二代计算机可以采用高级语言进行程序设计。 正确 计算机应用基础B判断题(20210414121631)全文共6页,当前为第2页。 计算机应用基础B判断题(20210414121631)全文共6页,当前为第2页。 "计算机辅助设计"的英文缩写是CAI。错误 系统软件包括操作系统、语言处理程序和各种服务程序等。正确 现在我们使用的计算机属于第五代计算机,其多媒体信息处理能力是第五代计 算机的标 志错误 WWW (WordWideWeb)称为万维网。 正确 在计算机网络中只能共方软件资源,不能共事硬件资源。 错误 一个汉字在计算机种存储需要两个字节。 正确 在计算机内部,机器数的最高位为符号位,该位用1表示该数为负数。 正确 计算机的指令是一组二进制代码,是计算机可以直接执行的操作命令。 正确 判断 机器语言程序是计算机能直接执行的程序。【参考答案】正确 控制器通常又称中央处理器,简称"CPU"【参考答案】错误 我们衡量一个文件的大小、信息量的多少都是以"位"为单位的。【参考答案】 错误 在计算机中,利用二进制数表示指令和字符,用十进制数表示数字。【参考答案】 错误 应用软件的编制及运行,必须在系统软件的支持下进行。【参考答案】正确 IP协议的一项重要的功能就是对在Internet中的计 算机实现统一的IP地址编码,并可通 过IP地址寻找Internet中的计算机。【参考答案】正确 http是指超文本传输协议。【参考答案】 正确 对于特定的讣算机,每次存放和处理数据的二进制数的位数是固定不变的【参考答案】 正确 在计 算机内部,利用电平的高低组合来表示各类信息。【参考答案】 错误 判断 程序是能完成特定功能的一组指令序列。【参考答案】 正确 计算机的字长是指一个汉字在计算机内部存放时所需的二进制位数。【参考答案】 错误 通常把控制器、运算器、存储器、输入和输出设备合称为计算机系统。【参考答案】错误 计算机与计算器的差别主要在于中央处理器速度的快慢。【参考答案】错误 操作系统属于系统软件范畴。【参考答案】正确 域名和IP地址是同一概念的两种不同说法。【参考答案】错误 ISP是指Internet服务提供商。【参考答案】 正确 键盘上每个按键对应唯一的一个ASClI码。【参考答案】错误 一个汉字在计 算机种存储需要两个字节。【参考答案】 正确 二进制数(0.1) 2与十进制数(0.1) 10—样大。【参考答案】 错误 判断 计算机内部最小的信息单位是"位"。【参考答案】 正确 汁算机系统包括软件系统和硬件系统两大部分。【参考答案】 正确 7个二进制位构成一个字节。【参考答案】错误 存储器具有记忆能力,而且任何时候都不会丢失信息。【参考答案】 错误 中小规模集成电路是第三代计算机的核心部件。【参考答案】 正确 字母A的ASCll码的值为65,那么小写字母d的ASelI码值也是65.【参考答案】钳误 采用ASCll编码,最多能表示128个符号。【参考答案】 正确 字长是衡量计算机运算速度和性能的一个重要指标。【参考答案】 正确 判断 第二代计算机可以采用高级语言进行程序设计。【参考答案】 正确 多媒体计算机是指计算机系统中用于存放文件的设备有多种,比如U盘、硬盘、光盘等。 【参考答案】错误 存储器容量的大小可以用KB为单位来表示,IKB表示1024个二进制数位。【参考答案】 错误 计算机应用基础B判断题(20210414121631)全文共6页,当前为第3页。计算机应用基础B判断题(20210414121631)全文共6页,当前为第3页。应用软件的编制及运行,必须在系统软件的支持下进行。【参考答案】正确 计算机应用基础B判断题(20210414121631)全文共6页,当前为第3页。 计算机应用基础B判断题(20210414121631)全文共6页,当前为第3页。 半导体存储器是第三代计算机的主存。【参考答案 正确 只要将儿台计算机使用电缆连接在一起,计算机之间就能够通信。【参考答案】 错误 字长是衡量计算机运算速度和

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

芝士就是菜

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

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

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

打赏作者

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

抵扣说明:

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

余额充值