一篇说清楚大端和小端

端是什么?

“我们常说的大端小端模式是计算机中 字节顺序(Endianness) 常见的两种表现形式。(此外还有混合序 (Middle-Endian))

“endian”一词来源于十八世纪爱尔兰作家乔纳森·斯威夫特(Jonathan Swift)的小说《格列佛游记》(Gulliver's Travels)。小说中,小人国为水煮蛋该从大的一端(Big-End)剥开还是小的一端(Little-End)剥开而争论,争论的双方分别被称为“大端派”和“小端派”。”

上文来自《深入理解计算机系统》。

大端小端指的是内存中字节存储的顺序,从高往低是大端,从低往高是小端。

是大端还是小端是由什么决定?

是由CPU决定的,内存因为CPU而决定大端、小端的展现形式。

怎么知道自己的CPU是大端序还是小端序?

    int checkCPU(void)  {  union  {  int a;  char b;  }c;  c.a = 1;  return (c.b == 1);  }

 

定义一个整型变量test并初始化为1。使用指针类型转换将整型变量test的地址转换为字符指针类型。通过访问该字符指针的第一个元素(即最低位字节),判断其值是否为1。如果第一个元素的值为1,则输出"小端",表示计算机采用小端字节序;否则输出"大端",表示计算机采用大端字节序。

#include <stdio.h>
int main()
{int test=1;if(((char *)&test)[0]){printf("小端");}else{printf("大端");}return 0;
}

知道了这个有什么用?

模块通讯,网络传输,这些都需要我们知道字节的发送顺序。

网络字节序:TCP/IP各层协议将字节序定义为Big-Endian,因此TCP/IP协议中使用的字节序通常称之为网络字节序.
高/低字节定义:在十进制中我们都说靠左边的是高位,靠右边的是低位,在其他进制也是如此。就拿 0x12345678来说,从高位到低位的字节依次是0x12、0x34、0x56和0x78.

有大端为什么要有小端?有小端为什么要有大端?

大端更符合人类阅读习惯,小端更具性能优势。个人更倾向小端。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/41072.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux上从NCBI序列

要下载NCBI Gene数据库中所有Gene ID的FASTA格式序列&#xff0c;可以使用以下方法&#xff1a; 使用Entrez Direct命令行工具 安装Entrez Direct: conda install bioconda::entrez-direct使用Entrez Direct下载FASTA格式序列: esearch -db gene -query "(Triticum aes…

C++ 空间和时间高效的二项式系数(Space and time efficient Binomial Coefficient)

这里函数采用两个参数n和k&#xff0c;并返回二项式系数 C(n, k) 的值。 例子&#xff1a; 输入&#xff1a; n 4 和 k 2 输出&#xff1a; 6 解释&#xff1a; 4 C 2 等于 4!/(2!*2!) 6 输入&#xff1a; n 5 和 k 2 输出&#xff1a; 10 解释&#xff1a; 5 C …

海思SD3403/SS928V100开发(14)WIFI模块RTL8821驱动调试

1.前言 芯片平台: 海思SD3403/SS928V100 操作系统平台: Ubuntu20.04.05【自己移植】 WIFI模块: LB-LINK的RTL8821 2. 调试记录 参考供应商提供的操作手册 2.1 lsusb查看设备 2.2 编译供应商提供的驱动 2.2.1 修改Makefile 2.2.2 编译报错 解决办法: 将Makefile中arm…

linux中 nginx+tomcat 部署方式 tomcat挂掉设置自动启动

在Linux环境下&#xff0c;要实现当Tomcat挂掉后自动重启&#xff0c;可以通过编写Shell脚本结合cron定时任务或者使用系统守护进程&#xff08;如Systemd、Upstart或SysVinit&#xff09;来完成。 使用Shell脚本和cron定时任务 编写检查并重启Tomcat的Shell脚本&#xff1a;首…

取证与数据恢复:冷系统分析,实时系统分析与镜像分析之间的过渡办法

天津鸿萌科贸发展有限公司是 ElcomSoft 系列取证软件的授权代理商。 ElcomSoft 系列取证软件 ElcomSoft 系列取证软件支持从计算机和移动设备进行数据提取、解锁文档、解密压缩文件、破解加密容器、查看和分析证据。 计算机和手机取证的完整集合硬件加速解密最多支持10,000计…

MMSC物料库位扩充

MMSC物料库位扩充 输入事务码MMSC&#xff1a; 回车后添加新的库位即可&#xff1a; 代码实现&#xff0c;使用BDC *&------------------------------------------------* *&BDC的定义 *&------------------------------------------------* DATA gt_bdcdata T…

ggrcs包4.0版本发布—重新对密度图宽度进行了设计

目前本人写的ggrcs包新的4.0版本已经在CRAN上线&#xff0c;目前支持逻辑回归&#xff08;logistic回归&#xff09;、cox回归和多元线性回归。 需要的可以使用代码安装 install.packages("ggrcs")如果原来安装了旧版本&#xff0c;重新在安装一次就可以升级到新版…

如何选择小红书矩阵系统

在内容营销领域&#xff0c;小红书已成为一个不可忽视的平台&#xff0c;尤其是对于品牌和个人创作者来说。小红书矩阵系统&#xff0c;指的是一系列策略和工具&#xff0c;它们可以帮助用户在小红书上高效地管理和分发内容。本文将探讨如何选择适合自己需求的小红书矩阵系统&a…

(18)GPS/指南针(二)

文章目录 前言 3 GPS驱动程序选项 4 GPS自动切换 5 高级用途 前言 Copter/Plane/Rover 支持与 GPS、指南针和其他定位技术的整合&#xff1a; 3 GPS驱动程序选项 GPS_DRV_OPTIONS 参数提供了几个 GPS 操作选项。这个参数是一个位掩码&#xff0c;允许同时进行多个选项的选…

Oracle数据库的日志切换策略

Oracle数据库的日志切换策略是确保数据库稳定运行和事务连续性的关键机制之一。以下是对Oracle日志切换策略的详细解析 1、自动日志切换 1.1、重做日志切换&#xff1a; Oracle数据库使用重做日志文件&#xff08;Redo Log Files&#xff09;来保证实例恢复。当当前的重做日…

YOLOv8数据集可视化[目标检测实践篇]

先贴代码,后面再补充解析。 这个篇章主要是对标注好的标签进行可视化,虽然比较简单,但是可以从可视化代码中学习到YOLOv8是如何对标签进行解析的。 下面直接贴代码: import cv2 import numpy as np import osdef read_det_labels(label_file_path):with open(labe…

蓝桥杯开发板STM32G431RBT6高阶HAL库学习FreeRtos——完成第一个小项目点灯

一、配置LED引脚(注意引脚都配置为高电平) 二、新建两个任务&#xff0c;一个为动态创建&#xff0c;一个静态创建&#xff08;以后大多数情况进行动态创建&#xff09;//将两个优先级设置成一样 补充&#xff1a; 1.FreeRTOS创建静态任务和动态任务的各自优缺点 静态任务和动…

react框架,使用vite和nextjs构建react项目

react框架 React 是一个用于构建用户界面(UI)的 JavaScript 库,它的本质作用是使用js动态的构建html页面&#xff0c;react的设计初衷就是为了更方便快捷的构建页面&#xff0c;官方并没有规定如何进行路由和数据获取&#xff0c;要构建一个完整的react项目&#xff0c;我们需要…

微信小程序:图片转icon

svg方式 通过svg图片的方式也能实现自定义icon。但是相比第一种方式&#xff0c;svg图片可以修改颜色&#xff0c;并且缩放的失真率也比较低。不过小程序wxss并不支持加载本地的svg图片。我们可以通过在线(https://www.sojson.com/image2base64.html)svg转base64的方式在wxss中…

Java中的线程调度与性能优化技巧

Java中的线程调度与性能优化技巧 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 1. 引言 在Java应用程序中&#xff0c;线程调度和性能优化是提升系统响应速…

3D技术赋能电商行业:“人-货-场”视角下的新变革!

在当今数字化时代&#xff0c;3D技术正以前所未有的方式赋能电商行业&#xff0c;在提升用户体验&#xff0c;优化商品展示&#xff0c;以及打造沉浸式的购。物场景上&#xff0c;重塑了电商行业的面貌&#xff0c;深刻改变着消费者的购物体验和商家的营销策略。 51建模网作为专…

Eclipse 菜单:深入解析与高效使用技巧

Eclipse 菜单:深入解析与高效使用技巧 Eclipse 是一款广泛使用的集成开发环境(IDE),它为Java、C++、PHP等编程语言提供了一个强大的开发平台。Eclipse 的菜单是其用户界面的一部分,提供了丰富的功能和选项,以帮助开发者更高效地工作。本文将深入解析 Eclipse 的菜单系统…

视图库对接系列(GA-T 1400)九、视图库对接系列(本级)机动车数据推送

背景 在上几章中,我们已经可以将视图库的平台写到我们的数据库中了。 换句话说就已经接入我们的平台了,这几期的话,我们就对接设备, 将设备的数据接入到我们平台来。 机动车数据推送 接入机动车数据推送相对比较简单,我们只需要实现对应的接口就ok了。 具体如图: 有增…

RRStudio 下载及安装(详尽版)

R语言来自S语言&#xff0c;是S语言的一个变种。S语言、C语言、Unix系统都是贝尔实验室的研究成果。R 语言是一种解释型的面向数学理论研究工作者的语言&#xff0c;主要用于统计分析、绘图、数据挖掘。 R 语言自由软件&#xff0c;免费、开放源代码&#xff0c;支持各个主要计…

Emacs有什么优点,用Emacs写程序真的比IDE更方便吗?

Emacs 是一个功能强大的文本编辑器&#xff0c;它在开发者和程序员中非常受欢迎&#xff0c;主要优点包括&#xff1a; 可定制性&#xff1a;Emacs 允许用户通过 Lisp 编程语言来自定义编辑器的行为和界面&#xff0c;几乎可以修改任何方面。扩展性&#xff1a;拥有大量的扩展…