zoukankan      html  css  js  c++  java
  • 推断序列的端部的大小C规划

    概念

    big-endian格式:高字节字符数据被存储在低地址。字数据的低字节存放在高地址。
    小尾数格式:相较于大端存储格式,在小尾数格式。低地址存储在字数据的低字节。的是字数据的高字节。

    5A6C5A是高字节、6C是低字节。在大端序机器中,高字节位于低地址中。即在大端序中依照5A6C存储,在小端序中依照6C5A存储。

    为什么存在这样的模式

    由于在计算机系统中。我们是以字节为单位的。每一个地址单元都相应着一个字节。一个字节为8bit

    可是在C语言中除了8bitchar之外,还有16bitshort型,32bitlong型(要看详细的编译器)。另外。对于位数大于8位的处理器。比如16位或者32位的处理器。由于寄存器宽度大于一个字节,那么必定存在着一个假设将多个字节安排的问题。因此就导致了大端存储模式和小端存储模式。

    代码实现

    请写一个C函数,若处理器是Big_endian的,则返回0。若是Little_endian的。则返回1

    int checkCPU()
    {
            union w
            {
                int  a;
                char b;
            } c;
            c.a = 1;
            return(c.b == 1);
    }

    分析:

    联合体union的存放顺序是全部成员都从低地址開始存放

    short int x;
    
    char x0,x1;
    
    x=0x1122;
    
    x0=((char*)&x)[0];  //低地址单元
    x1=((char*)&x)[1];  //高地址单元
    
    若x0=0x11,则是大端; 若x0=0x22,则是小端......

    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    aspjpeg 组件在asp中的使用
    C# 使用 fckeditor 上传文件中文名乱码的问题---转
    我来挑战主页绑定,浏览器被绑架之终极方案!
    nginx简易配置
    树莓派安装中文输入法
    树莓派4超频至2.0GHz
    python3 requests使用连接池
    python3 语言特性5
    git日常使用
    python3 时间格式化
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4852672.html
Copyright © 2011-2022 走看看