c语言之大端小端问题

article/2025/9/24 22:47:27

这就是字节序问题:数据在计算机内存中存储或者网络传输时各字节的存储顺序

通常来说就分为两种情况:

        一种是大端(big-endian):高字节(高位)存放在低地址,低字节(低位)存在高地址

        另外一种小端(little-endian):高位存放在高地址,低位存放在低地址

这里先来说一下,数据采用大端还是小端与cpu,系统,硬件参数有很大关系,不管什么编程语言,数据都有可能采用大端或者小端来存放,一般来说windows,linux,手机,平板都是采用小端来存存放数据,这种数据存储方式有利用寻址并且数据改写。

        下面具体来说一下小端、大端怎么来存放。

        假设现在有一个数据,int num = 1;大家都知道,int 是占用四个字节的,那么对于num来说,它的在内存中的二进制表示就是:

        

现在来说大端、小端是如何存放的:        ​​

下面用代码来验证一下:

 代码其实很简单,上面下了一个断点,我们来获取地址,直观去看一下内存数据如何存放

 跳转到上面这个内存地址:

我这里是选择的一列按照十六进制显示:

 观察一下0x0028FE0C这个起始地址,存放的是01这样的十六进制数据,那么换成二进制,四个二进制数据对应一个十六进制数据,就是00000001,也就是低位存放在低地址,按照小端存放。

那么我们换一种方式去看看linux系统又是按照什么方式存储数据

 demo.c

#include <stdio.h>
#include <stdlib.h>int main()
{int num1 = 1;char *p_num1 = (char*)&num1;int i = 0;for(;i < 4;i++) {//指针的加减是前进相应的数据类型//比如p_num1+i就会往前走char类型的长度printf("%p  %d\n",p_num1+i,*(p_num1+i));}return 0;
}

 运行结果:

上面我就用了一个char 类型的指针指向了int类型数据的地址起始,为什么char,不用int,因为如果用int,一旦+1,就会指向int这个数据类型的末尾。 

上面我们也可以看出,linux也是按照小端字节存放的。

下面我们来说一下java怎么来判断是小端还是大端。

java由于无法操作内存,我们直接调用一个类里面的方法即可

 

上代码:

package pxx;import java.nio.ByteOrder;public class Demo1 {public static void main(String[] args) {ByteOrder byteOrder = ByteOrder.nativeOrder();System.out.println(byteOrder);}
}

运行结果: 

 

 OK,说到这


http://chatgpt.dhexx.cn/article/qxjFRuQN.shtml

相关文章

数据存储:大端小端

文章目录 问题起源大端小端大端小端优劣符合人类阅读方式数据类型转换符号位的识别 参考资料 曾经辨析和了解过大端小端&#xff0c;但是到了实际应用中还是比较模糊。整理一些资料文章&#xff0c;在此记录。 问题起源 在计算机的使用以及现代很多的嵌入式设备中&#xff0c;…

大端与小端

一.大小端介绍 “大端”和“小端”表示多字节值的哪一端存储在该值的起始地址处。小端存储在起始地址处&#xff0c;即是小短字节序&#xff1b;大端存储在起始地址处&#xff0c;即是大端字节序。 大端存储模式&#xff1a;数据的低位保存在内存中的高地址中&#xff0c;数据…

大端和小端的含义及判断代码

1、概述 在计算机系统中&#xff0c;数据都是以字节进行存储的&#xff0c;每个地址单元对应一个字节&#xff0c;每个字节都是8位&#xff08;bit&#xff09;。但是C除了char和bool之外&#xff0c;还有其它多字节类型。怎样存储多字节的数据就分为了大端和小端。字节序只和…

C语言基础 —大端和小端

大端和小端 1、什么是大端和小端2、为什么会有大端和小端3、怎样判断是大端还是小端 1、什么是大端和小端 大端模式&#xff1a;就是 高位字节 存放在内存的 低地址端&#xff0c;低位字节 存放在内存的 高地址端 小端模式&#xff1a;就是 低字节存 放在内存的 低地址端&…

大端和小端的区别和判断

1.概念 大端模式(big endian)&#xff1a;数据的高位字节保存在内存的低地址中&#xff0c;而低位字节保存在内存的高地址中。 小端模式(little endian)&#xff1a;数据的高位字节保存在内存的高地址中&#xff0c;而低位字节保存在内存的低地址中。 问&#xff1a;什么是高…

什么是大端和小端

大端&#xff08;存储&#xff09;模式&#xff1a;是指数据的低位保存在内存的高地址中&#xff0c;而数据的高位保存在低地址中&#xff1b; 小端&#xff08;存储&#xff09;模式&#xff1a;是指数据的低位保存在内存的低地址中&#xff0c;而数据的高位保存在高地址中。 …

大端、小端的前世今生

什么是大端、小端&#xff1f; BigEndian(大端)&#xff1a;低字节在高内存地址 LittleEndian(小端)&#xff1a;低字节在低内存地址 所谓大端小端&#xff0c;也就是看低字节在高内存地址还是低内存地址&#xff0c;也就是看低字节在前还是高字节在前&#xff0c;低字节在前…

数据存储:小端模式和大端模式——终于搞明白了!!!

首先要记住&#xff1a;读数据永远是从低地址开始的&#xff01;&#xff01;&#xff01; 正文开始 什么是低地址、高地址&#xff1f; 地址编号小的是低地址&#xff0c;地址编号大的是高地址 什么是数据的低位、高位&#xff1f; 小端模式 数据的低位放在低地址空间&am…

室内定位技术(三)——自有定位技术

我们正在使用的技术是以wifi信号强度正态分布为核心&#xff0c;结合神经网络原理的一套完整算法&#xff0c;并对wifi信号的正态分布情况作了很多的优化工作。 以下是在两组wifi信号强度正态分布研究的实例图&#xff1a; 四条不同颜色的线分别代表不同的ap信号强度的正态分布…

室内定位浅析

这一星期都在弄室内定位的事情&#xff0c;关于室内定位。需求就是两个终端之间&#xff0c;能够快速地通过室内定位做出路线规划&#xff0c;进行导航。 这个精确的室内定位路线规划得益于WIFI的精确部署。 先开看看这个WiFi的理论部署模型。 等边三角形的三个顶点作为三个无…

物联网之室内定位

摘要&#xff1a;室内定位正处于百家争鸣、技术爆发的阶段&#xff0c;尤其近年随着UWB、Wi-Fi以及5G等通信技术的广泛应用。 1、定位需求 物联网时代&#xff0c;位置服务已成为人们工作生活必不可少的服务之一&#xff0c;网约车、外卖、导航等都依赖定位服务。这些最常用的…

室内定位关键技术(indoor location)

一、Wi-Fi定位 Wi-Fi定位是目前相对成熟且应用广泛的定位技术&#xff0c;定位方法是基于信号强度的传播模型法和指纹识别法。信号强度的传播模型法&#xff0c;是指使用当前环境下假设的某种信道衰落模型&#xff0c;根据其数学关系估计终端与已知位置 AP 间的距离&#xff0c…

室内定位——UWB测距及定位原理

关注、星标公众号&#xff0c;直达精彩内容 来源&#xff1a;平行机器人 整理&#xff1a;李肖遥 我们都知道卫星信号在室内会被严重影响&#xff0c;从而导致GPS或是北斗无法定位。所以在室内定位主要采用无线通讯、基站定位、惯导定位等多种技术集成形成一套室内位置定位系统…

【可见光室内定位】(一)概览

目录 一、室内无线定位技术概况二、研究现状三、应用前景背景 一、室内无线定位技术概况 二、研究现状 得益于可见光通信&#xff08;&#xff36;&#xff2c;&#xff23;&#xff09;技术的迅速发展&#xff0c;可 见光定位&#xff08;&#xff36;&#xff2c;&#xff…

室外定位靠卫星 室内定位又如何?

人类为了不让自己迷失在茫茫大自然中&#xff0c;先后发明罗盘、指南针等工具&#xff0c;卫星定位的问世&#xff0c;解决了“我在哪里”的问题。 如今物联网是“信息化”时代的重要发展阶段&#xff0c;随着社会信息化水平的普遍提高&#xff0c;其社会的重要性日益显现。 云…

室内定位之5G定位

目录 一、前言 二、蜂窝网 三、5G引入哪些技术 五、5G室内定位研究现状 六、5G室内CSI指纹定位 七、5G室内定位的未来 一、前言 随着5G通信基础设施逐步完善&#xff0c;5G网络的优势一方面在于其具有的更大的带宽和子载波间隔&#xff0c;使得5G室内定位精度提升(3.5GH…

室内定位——视觉方法的发展

转载自&#xff1a;室内定位——从入门到出家&#xff08;二&#xff0c;视觉&#xff09; 作者其他文章&#xff1a; 室内定位——从入门到出家&#xff08;一&#xff09; 室内定位——从入门到出家&#xff08;三&#xff0c;近红外&#xff09; 室内定位——从入门到出家&a…

室内定位

室内定位调研 1.蓝牙定位 1&#xff09;背景 蓝牙室内技术是利用在室内安装的若干个蓝牙局域网接入点&#xff0c;把网络维持成基于多用户的基础网络连接模式&#xff0c;并保证蓝牙局域网接入点始终是这个微微网(piconet)的主设备&#xff0c;然后通过测量信号强度对新加入的…

聊聊室内定位技术

目前&#xff0c;定位技术已经非常发达&#xff0c;GPS/北斗等卫星定位、手机基站定位应用都非常广泛。但也都有其局限性&#xff0c;卫星定位只能应用于空旷地方&#xff0c;基站定位只能应用于信号好的地方&#xff0c;且定位精度较低。而室内定位正好弥补了两者的不足。 室内…

室内定位白皮书

3 室内定位技术原理介绍 目前&#xff0c;室内定位技术众多&#xff0c;考虑到市场应用普及性及技术应用前景&#xff0c;本章将从定位原理、定位方式及性能、产业链支持情况以及产业痛点分析这些维度&#xff0c;分析介绍 5G 基站定位、4G 基站定位、蓝牙 4.2定位、蓝牙 5.1 …