zoukankan      html  css  js  c++  java
  • 寻址和字节序列 读《深入理解计算机系统》笔记

          对于跨越多字节的程序对象,我们必须建立两个规则:这个对象的地址是什么,以及在存储器中如何排列这些字节。在几乎所有的机器中,多字节对象都被存储为连续的字节序列,对象的地址是所使用字节中的最小地址

         小端法:存储器中按照从最低有效字节到最高有效字节的顺序存储对象;

         大端法:存储器中按照从最高有效字节到最低有效字节的顺序存储对象;

        不同的机器采用不同的规则,我们可以通过程序来了解自己所用机器所采用的规则。

    #include<stdio.h>

    typedef unsigned char *byte_pointer;  //byte_pointer定义为指向unsigned char类型的对象指针

    void show_bytes(byte_pointer start,int len){

    int i;

    for(i=0;i<len;i++)

     printf(" %.2x",start[i]);

    printf("\n");

    }

    void show_int(int x){

    show_bytes((byte_pointer)&x,sizeof(int));

    }

    void show_float(float x){

    show_bytes((byte_pointer)&x,sizeof(float));

    }

    void show_pointer(void *x){

    show_bytes((byte_pointer)&x,sizeof(void *));

    }

    void test_show_bytes(int val)

    {

     int ival=val;

    float fval=float(ival);

    int *pval=&ival;

    show_int(ival);

    show_float(fval);

    show_pointer(pval);

    }

  • 相关阅读:
    HDU 5135(再思考)
    HDU 5105
    HDU 5135
    Codeforces 985E
    Codeforces 985D
    Codeforces 975D
    Codeforces 975C
    Codeforces 976D
    HDU 1024 Max Sum Plus Plus (DP,水题)
    HDU 1003 Max Sum(DP,水题)
  • 原文地址:https://www.cnblogs.com/liujiangyi/p/2143321.html
Copyright © 2011-2022 走看看