大端序与小端序

小端序

  • 一般计算机都是小端序,把最低有效位放在低地址的存储方式。
  • 无论是栈还是堆,都遵循小端序。
  • 可能影响数据类型转换
    参见:数据类型 5.1节
#include<stdio.h>
#include<stdlib.h>
void test()
{
    int *p;
    char *q;
    int a =0x41424344;
    p = &a;
    printf("stack:\n");
    printf("%x\n", *p); 

    q = (char *)p;
    printf("%p : %c\n", q+3, *(q+3));
    printf("%p : %c\n", q+2, *(q+2));
    printf("%p : %c\n", q+1, *(q+1));
    printf("%p : %c\n", q, *q);
}
int main()
{

    int *p;
    char *q;
    p = (int *)malloc(16);
    *p = 0x41424344;
    printf("%x\n", *p); 
    q = (char *)p;
    printf("%p : %c\n", q+3, *(q+3));
    printf("%p : %c\n", q+2, *(q+2));
    printf("%p : %c\n", q+1, *(q+1));
    printf("%p : %c\n", q, *q);
    free(p);
    p=NULL;

    test();

    return 0;
}
//输出
41424344
0x602013 : A
0x602012 : B
0x602011 : C
0x602010 : D
stack:
41424344
0x7fffffffe257 : A
0x7fffffffe256 : B
0x7fffffffe255 : C
0x7fffffffe254 : D
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容