大小端详解

引例

我们知道整形(int)是4个字节,例如随便举个例子:0x01020304,它一共占了四个地址位,01,02,03,04分别占了一个字节(一个字节就对应了一个地址)。

那么就会有个问题:我们的01到底是存储在高地址还是低地址呢?

大小端

那么不同的编译器就会有不同的规定:

将位数偏低的存储在低地址就叫小端,将位数偏低的存储到高位次就是大端。

vs的大小端判断

首先我们看一下vs是大端还是小端

我们发现04对应着的是低地址,所以是小端

通过代码查看编译器的大小端

我们知道一个整形的地址指的是这四个字节里面最小的地址,那我们只要看这个地址对应存储的值和最低位的值是否相同就行了。如果是相同的就是小端,反之。

第一种方法如下:

第二种方法我们可以使用联合体

因为联合体的内存是里面最大数据类型的内存,且所所有成员共用这个内存,所有内存都在低地址处对其。那么联合体里面的成员a的内存就是b里面最小地址的内存。我们首先定义一个m,并给成员b赋值,如果是小端那么4h的值就应该在偏低的地址处,那么我们访问a就刚好访问了4h。通过if判断就能检查它是小端还是大端了。

相关推荐

  1. 常见端口大全

    2024-07-10 07:12:01       35 阅读
  2. ChatGPT提示词大全锁AI对话

    2024-07-10 07:12:01       59 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 07:12:01       99 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 07:12:01       107 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 07:12:01       90 阅读
  4. Python语言-面向对象

    2024-07-10 07:12:01       98 阅读

热门阅读

  1. Django学习收尾

    2024-07-10 07:12:01       29 阅读
  2. Linux Vim全面教程

    2024-07-10 07:12:01       30 阅读
  3. 【Linux命令基础】vim的简介

    2024-07-10 07:12:01       28 阅读
  4. linux vim编辑文件界面的所有命令

    2024-07-10 07:12:01       27 阅读
  5. [linux] 如何优雅的用vim阅读jsonl文件

    2024-07-10 07:12:01       31 阅读
  6. AMBA总线协议与PCIe总线协议的区别

    2024-07-10 07:12:01       33 阅读
  7. YModem在Android上的实现

    2024-07-10 07:12:01       30 阅读
  8. Selenium 切换窗口

    2024-07-10 07:12:01       27 阅读
  9. PCA和PCoA分析的python代码

    2024-07-10 07:12:01       35 阅读