• 5. 链接


    练习5-1

    假定一个程序在一个源文件中包含了声明:

      long foo;

    而在另一个文件中包含了:

      extern short foo;

    又进一步假定,如果给long类型的foo赋一个较小的值,例如37,那么short类型的foo就同时获得了一个值37.我们就能够对运行改程序的硬件做出什么样的推断?如果short类型的foo得到的值不是37而是0,我们又能够做出什么样的推断?

      在解答该问题之前,关于数据如何在内存中存储,我们引入两个概念。

      1. 大端模式(big endian):最低字节放在高位字节,可称高位优先,我们以unsigned int x = 0x12345678为例

        高地址
        ---------------
        buf[3] (0x78) -- 低位
        buf[2] (0x56)
        buf[1] (0x34)
        buf[0] (0x12) -- 高位
        ---------------
        低地址

      2. 小端模式(little endian):最低字节放在低位字节,可称低位优先,我们仍然以unsigned int x = 0x12345678为例

        高地址
        ---------------
        buf[3] (0x12) -- 高位
        buf[2] (0x34)
        buf[1] (0x56)
        buf[0] (0x78) -- 低位
        --------------

     

     现在我们就可以回答这个问题了,输出结果为37时,为小端模式,而输出结果为0是则为大端模式。

  • 相关阅读:
    centos7 安装 tesseract4.1
    08 图的数据结构和算法
    07 树形结构及其算法
    05 数组与链表算法
    06 堆栈与队列算法
    04 查找与哈希算法
    03 排序算法
    javascript 标签轮播
    tomcat URI get 参数中文传到后台 乱码 URIEncoding
    javascript 标签切换
  • 原文地址:https://www.cnblogs.com/hebust-fengyu/p/12036928.html
Copyright © 2020-2023  润新知