当前位置:   article > 正文

大小端(C语言)

大小端(C语言)

一、什么是大小端:

1.大端(Big-Endian):高地址存放低位

2.小端(Little-Endian):高地址存放高位

例如:0x11223344在内存中存储

大小端影响了什么?

当基本数据类型占用字节数超过了1字节后,大小端决定了数据按照什么顺序存储在内存里

如何确定大小端?

        当我们不知道当前换将是大端存储还是小端存储的时候,就需要用代码来确定当前环境的大小端

1.强类型转换(int-->char)

  1. int n = 1;
  2. char* p = (char*)&n;
  3. if (*p == 1) {
  4. printf("小端\n");
  5. }
  6. else {
  7. printf("大端\n");
  8. }

2.共用体(union)

  1. #include<stdio.h>
  2. union u {
  3. int n;
  4. char c;
  5. };
  6. int main()
  7. {
  8. union u m;
  9. m.n = 0x11223344;
  10. if (m.c == 0x44) {
  11. printf("小端");
  12. }
  13. else {
  14. printf("大端");
  15. }
  16. return 0;
  17. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/article/detail/44131
推荐阅读
相关标签
  

闽ICP备14008679号