zoukankan      html  css  js  c++  java
  • 大尾端 小尾端

    提到体系结构时,经常遇到大小尾端的概念,这里做个总结。
        big endian:大尾端,也称大端(高位)优先存储。
        little endian:小尾端,也称小端(低位)优先存储。
       如下00000000 00000000 00000000 00000001的存储
           
        大尾端: 00000000 00000000 00000000 00000001
               addr+0    addr+1     addr+2   addr+3     //先存高有效位(在低地址)
      
       小尾端: 00000001 00000000 00000000 00000000
               addr+0    addr+1     addr+2   addr+3     //先存低有效位(在低地址)
       故要判断机器的体系结构是大尾端还是小尾端,以下程序可以完成任务:
      
       

    #include <stdio.h>
    int main()
    {
        int tt = 1;
        char *c = (char*)(&tt);
        if(*c == 1)
        {
            printf("litte endian\n");
        }
        else
        {
            printf("big endian\n");
        }
        return 0;
    }

    大小尾端数据间的相互转换

    /*
          usage: to convert between the form of big-endian and little-endian
          author: ydzhang
          date: 2008年12月6日20:23:48
    */

    #include <stdio.h>
    typedef unsigned int u32;
    typedef unsigned short u16;

    #define BSWAP_16(x) \
            (u16) ( ((((u16)(x) & 0x00ff)) << 8) \
            | (((u16)(x) & 0xff00) >> 8) )

    u16 bswap_16(u16 x)
    {
        return ((x & 0x00ff) << 8) | ((x & 0xff00) >> 8);
    }

    u32 bswap_32(u32 x)
    {
        return ((x & 0x000000ff) << 24) |
               ((x & 0x0000ff00) << 8) |
               ((x & 0x00ff0000) >> 8) |
               ((x & 0xff000000) >> 24);
    }

    int main()
    {
         u16 num_16 = 0x1234;
         u32 num_32 = 0x12345678;

        printf("%x\n", bswap_16(num_16));
        printf("%x\n", BSWAP_16(num_16));
        printf("%x\n", bswap_32(num_32));
        return 0;
    }

    类别:C 查看评论
  • 相关阅读:
    oracle如何实现自增?----用序列sequence的方法来实现
    win7旗舰版安装 oracle 10g 不能进入图形界面的问题
    MBA都需要学习哪些课程
    查看Oracle当前用户下的(表视图,同义词...)
    辽宁省全国计算机等级考试 网上报名须知
    大学毕业之后的几年 你能考哪些证书
    plsql启动报 Using filter for all users can lead to poor perform
    hive web界面管理
    hive常用命令
    hive-site.xml
  • 原文地址:https://www.cnblogs.com/dorothychai/p/2268163.html
Copyright © 2011-2022 走看看