大端和小端有那么难记吗,一语破的

SpringBoot+Vue+Mysql社区医院信息平台(源码+文档) SpringBoot+Vue+Mysql学生宿舍信息管理系统 WEB端软件项目(源码+文档) 项目包含:①完整源码(后端+管理后台+用户前台);②数据库脚本文件;③万字论文文档;④开题报告;⑤答辩PPT;⑥项目运行视频教程。 项目架构: B/S 架构、MVC 分层设计 技术栈: Java、MySQL、SpringBoot、MyBatis-Plus、Token 权限校验、管理后台 Vue+ElementUI+ECharts、用户前台 Layui+jQuery、Maven 构建。 一、角色设计 学生用户: 注册登录、浏览宿舍信息、查询宿舍安排、在线报修、缴费查询、失物招领、桶装水预订、评论交流、收藏等。 商家用户: 注册登录、桶装水品牌与商品信息维护、预订订单查看与处理。 维修人员: 注册登录、查看待处理报修、接单维修、填写报修处理结果与进度反馈。 管理员: 学生管理、班级管理、宿舍信息管理、宿舍安排管理、报修处理管理、缴费信息管理、卫生检查与文明宿舍管理、失物招领管理、桶装水与商家管理、维修人员管理、公告资讯与轮播图管理等。 二、前台功能模块(学生端) 1. 首页展示:轮播图、宿舍公告、最新动态推荐、常用服务快速入口 2. 宿舍信息模块:宿舍列表、楼栋与房间条件筛选、宿舍详情查看、我的宿舍安排查询 3. 在线报修模块:在线提交宿舍设施报修申请、上传故障描述、查看报修进度与维修处理结果 4. 缴费模块:水电等缴费记录查询、缴费状态查看 5. 卫生检查与文明宿舍:宿舍卫生检查结果公示、文明宿舍展示 6. 失物招领模块:失物信息发布、招领信息发布、详情查看、评论互动 7. 桶装水预订:桶装水品牌与商品浏览、在线预订、我的预订记录查询 8. 假期留宿:假期留校申请提交、申请记录查询 9. 评论与收藏:信息评论、查看他人评论、评论回复互动、收藏感兴趣的内容 10. 个人中心... 立即下载

大端和小端的那些东西,已有很多文章讲解,在此也不过多赘述其原理了,其实也没啥复杂的。本文还是主要分享下个人的想法,重点在“记”

大端(Big-endian)和小端(Little-endian)

上定义

大端(Big-endian)模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中。这种存放方式符合人类的阅读顺序。
小端(Little-endian)模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中。

大小端图解
看图就明白了。
顺便提一下:这里有个 MSB(Most Significant Bit)最高有效位 的概念。指二进制中代表最高值的比特位,这一位对数值的影响最大,其分量也是不言而喻的。比较与之相反的“最低有效位”(LSB)。
这与十进制数字是类似的。亿位上的数字显然比个位上的更重要。

另外: Intel x86的CPU使用的是LE(Windows中称为“主机字节序”)。TCP/IP协议规定使用BE(就是“网络字节序”(Network Byte Order)),所以在使用socket编程时需要使用htons(),htonl(),ntohs(),ntohl()来倒字节序。

为何称大端和小端?

这里也是重点。我看到很多文章和书籍里都很避讳这个词,觉得词不达意,自命为什么高尾端,低尾端,大尾端,小尾端之类的。(为煞费苦心引入这个词的科学家感到委屈,haha~~) 其实,我觉得结合该词的来源,直译的“大端和小端”已经完全够准确了,甚至是一语破的。

来源:(Endian)的这个词最早出自名著《格列佛游记》。在小人国中,皇帝的祖父小时候吃鸡蛋,一次按古法(先打破鸡蛋较大的一端)打鸡蛋时碰巧将一个手指弄破了,因此他的父亲,当时的皇帝,就下了一道敕令,命令全体臣民吃鸡蛋时打破鸡蛋较小的一端,违令者重罚。历史告诉我们,由此曾发生过六次叛乱,其中一个皇帝送了命,另一个丢了王位…
由此也渐渐形成了两个派别:从圆头开始将鸡蛋敲开的人被归为Big Endian派,从尖头开始将鸡蛋敲开的人被归为Littile Endian派。
后来,这一对词语被位知名学者引入了计算机界。Endian术语表示数据在存储器中的存放顺序。在计算机行业Big Endian的存储顺序和Little Endian存储顺序的厂商也引起一场纷争。

接下来,就该谈谈这个词有多言简意赅了。
首先,无论是数据存放在内存中还是磁盘(还是要加载到内存缓冲区的),CPU在寻址到数据后,调用数据总线取数据,不论几字节取,顺序都是从低地址往高地址取。然后,就要看数据是如何在内存中存放的了。是将数据的最高有效位先存储还是将最低先存储呢?
把数据比作待食用的熟鸡蛋,把CPU比作食用鸡蛋的小人。先从鸡蛋更有分量的大头端吃起,你就是Big-endian派的了,先从鸡蛋更安全的小头端吃起,你就是Little-endian派的了。从中间你就奇葩了。

所以呢,我觉得用这两个词再恰当不过了。欢迎谈论。


无意间看到一个巧妙的检测大小端方法分享下:

static union {
    char isBigE[4];
    int isBigE_;
} g_endianTest = {
0x00, 0x00, 0x00, 0x01
};
#define IS_BIG_ENDIAN ((char)g_endianTest.isBigE_)

2020.08.22 update
myAvatar

数据挖掘实战:决策树 + 聚类 + 关联规则,零 Key 离线可跑(Python 源码) 数据挖掘实战包。用 Python 标准库实现 CART 风格决策树、K-Means 聚类与 Apriori 关联规则,在虚构「星河便利店」会员表和购物篮上跑通分类、分群与购物篮分析,并给出准确率、轮廓系数、支持度/置信度/提升度。零第三方依赖、零 API Key 即可离线跑通。含 4 个样例、离线冒烟、中文 README(含「使用方法」)。均为作者原创可运行源码。MIT。作者 blog.youkuaiyun.com/mtl1994 立即下载

相关推荐

产业园区如何高效对接企业技术需求与高校科研成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

轻松记住大端小端的含义(附对大端和小端的解释)

  或许你曾经仔细了解过什么是大端小端,也动手编写了测试手头上的机器上是大端还是小端的程序,甚至还编写了大端小端转换程序;但过了一段时间之后,当你再看到大端和小端这两个字眼,你的脑中很快浮起了自己曾经做过的工作,却总是想不起究竟哪种是大端、哪种是小端,然后又去查以前写的记录?更让人不快的是,这种经历反反复复,让你十分困扰。如果你和以前的笔者一样,有过这种不快的经历,那么这篇文章希望能帮你彻底解决这...

weixin_34259159的博客 1669

国央企创新负责人如何快速掌握本地科技资源分布与匹配情况?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

记不住大小端模式?可以清晰记住的两个方法

学习数据在内存中的存储的时候,就会学到关于存储是大端模式还是小端模式的问题,可能会有人和我一样经常搞混,所以这里介绍了几个方法,可以清晰地记住大小端模式的分别。

qq_43271717的博客 1395

国央企创新负责人如何实现科技成果的精准识别与高效筛选?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

kaggle——销量预测的baseline(M5 Forecasting - Accuracy)

前言 在刚刚结束的kaggle比赛M5 Forecasting - Accuracy中,因为是第一次参加,笔者也是花了大量的时间和精力在上面,最终拿到一块银牌(所以我拿到了大学第一个考试挂科。。。求求电磁场老师高抬贵手给点平时分放我一马吧。。。早上看到kaggle成绩异常兴奋,中午考完直接爆炸=。=),当然运气占了很大因素,这次比赛private leadboard的shake up非常大,排名波动几千名都存在的。笔者运气不错,是向上的shake:)。这里总结一下销量预测的基本流程。 从下图可以看到这次比

weixin_43901221的博客 5432

最简单的方式教你理解大小端字节序

学过编程的人都应该知道大小端字节序的概念,但是很多时候,总是把他们弄混,这是整理出来的一份很简单的方式理解字节序的文章,废话不多说,这里直接入正题。什么是字节序?字节序,简单来说,就是指的超过一个字节的数据类型在内存中存储的顺序那么就很明显了,像char这样的类型,肯定不存在字节序的问题了。字节序分为哪几类?大端字节序: 高位字节...

weixin_34122810的博客 950

华为手环实时心率数据导出到UWP项目中

hello大家好呀O(∩_∩)O最近在做毕设 其中有个小功能要用到实时心率数据。查找网上的资料发现只有小米手环的实时心率数据导出但是没有华为手环的,我试了华为手环但是并不能行得通哈哈哈。现在分享一下华为手环实时心率数据导出的代码。

apple_63713858的博客 1581

快速打开命令窗口shift+同时点击鼠标右键。

一般情况下,在不选中任何文件的情况下,在任意文件夹内,按住shift,同时点击鼠标右键,此时右键菜单就会多出一项 “在此处打开命令窗口“,点击此命令即可进入命令行窗口   但是,并不是所有的电脑都可以,万一不行怎么办 1.在桌面创建个txt文件,把下面的指令复制进去   Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Di...

兰陵笑笑生的博客 5419

【软件系统架构】系列四:嵌入式技术

嵌入式系统是以应用为中心、以计算机技术为基础,并将可配置与可裁剪的软硬件集成于一体的专用计算机系统。它需要满足功能、可靠性、成本、体积、功耗等方面的严格要求。 嵌入式系统一般由以下组成部分构成:

moton2017的博客 1000

vue2/3 - 详细实现内网使用离线高德地图功能,在vue中无需网络离线使用高德地图相关功能,高德地图如何离线加载详细教程(内网部署及使用),提供最新完整的瓦片资源下载及相关工具(示例代码,一键复制

vue,vue2,vue3,高德地图,离线使用高德地图,高德地图瓦片官方下载,vue内网使用高德地图离线无网络,断网情况下使用高德地图,vue离线高德地图教程,如何实现内网部署高德地图,无需联网离线使用,vue+ts实现离线高德地图 内网离线高德地图,如何在高德地图Vue项目中下载离线地图,高德离线地图加载不出来,高德地图离线使用不显示怎么办,怎么解决vue内网使用离线高德地图加载失败问题,vue实现离线地图+高德瓦片,vue引入高德离线地图,vue项目如何使用离线高德地图和自定义地图样式,高德离线地图的下

✅ 精选推荐文章 1万+

大端小端问题

关于大端和小端,自己已经记了很多次了,可每次都忘,今天创新工场笔试,第一道题就是关于大端小端的知识,可惜,自己又忘了,怎么回事,说到底,是自己同时记大端和小端,导致容易混淆,现在只记小端了:小端,是数的高位存在内存地址的高位,小高高!下面是从网上摘抄的一些东东,帮助理解和记忆,来自http://www.52rd.com/Blog/Detail_RD.Blog_imjacob_14837.html:端模式(Endian)的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不

蓝蓝的天 2628

YOLO26涨点改进 | 小目标损失函数独家改进篇 | TGRS 2025 | 引入AdaFocalLoss损失函数,改进小目标检测,自适应聚焦小目标与样本分布不平衡,提升检测精度与训练稳定性

目录一、前言:YOLO26原生损失函数在小目标检测中的核心痛点(涨点瓶颈)1.1 小目标权重不足,聚焦能力薄弱1.2 样本分布不平衡适配性差,正负样本权重失衡1.3 训练不稳定,易出现梯度消失/震荡1.4 未区分小目标与背景的冗余干扰,误检率高二、TGRS 2025顶刊灵感解析:自适应聚焦损失的核心逻辑三、全网独家创新:AdaFocalLoss损失函数设计与YOLO26适配(核心重点,可复现)3.1 AdaFocalLoss函数整体设计(独家设计,清晰可复现)3.2 各核心模块详细设计(独家创新,可直接复现

qq_36130719的博客 203

关于大小端模式,该怎么记忆

1.大与小,说的是什么 大与小,实际上说的是位权值,也就是说字节顺序问题,是由数学中,自然数的书写模式的规律,扩展延伸类比而来的。 例如:        2018这个十进制多位自然数的书写,是从左到右的。        2018 = 2*1000 +

唐麦片的专栏 1744

Spring AI 实战:第五章、Spring AI本地模型部署之省钱小能手

白嫖的快乐你想象不到经过这番折腾,我们成功实现了零成本使用大模型完全本地运行保障隐私可视化访问Java生态无缝集成但可能有的小伙伴要吐槽,怎么换个底层模型这次就新建一个工程了呢?不能在以前的工程上开发吗?这样也太不优雅了吧~,我知道你很急,但先别急,等下一章节再来解决这个问题。为什么程序员特别喜欢Ollama?因为它就像一只温顺的羊驼——不花钱还能24小时产出代码!

liaokailin的专栏 922

snmp MIB详解

每个 MIB 对象都由一个对象标识符(OID)和对象类型组成。OID 是一个由多个数字组成的路径(类似于 IP 地址),它标识了 MIB 中对象的层次结构。

dlz0836的博客 3722

大端/小端的原理和记忆方法

原文地址:https://www.cnblogs.com/wuyuegb2312/archive/2013/06/08/3126510.html 或许你曾经仔细了解过什么是大端小端,也动手编写了测试手头上的机器上是大端还是小端的程序,甚至还编写了大端小端转换程序;但过了一段时间之后,当你再看到大端和小端这两个字眼,你的脑中很快浮起了自己曾经做过的工作,却总是想不起究竟哪种是大端、哪种是小端...

jiujiaobusiniao的博客 472

037、有源钳位反激变换器(ACF)原理

文章摘要 有源钳位反激变换器(ACF)是一种克服常规反激电路漏感能量处理瓶颈的高效解决方案。文章从实际炸机案例切入,指出RCD钳位电路在高压、宽范围、高功率场景下的局限性。ACF通过增加钳位管和钳位电容,将漏感能量回收而非消耗,实现效率提升2-3%、精准电压钳位和更好EMI性能。文章详细解析了ACF四阶段工作过程、关键波形特征,并指出设计陷阱:漏感需保持1%-3%特定范围、钳位电容ESR要求严格、需专用控制IC支持互补驱动。最后给出实用调试建议,强调ACF适用于65W+功率场景,低压验证后再逐步升压的调试方

Jack010169的博客 263

Win10将shift+右键“在此处打开Powershell”改为“在此处打开命令提示符”的正确姿势

文章目录I mean this.如何修改注册表 I mean this. 如何修改注册表 注册表位置: 计算机\HKEY_CLASSES_ROOT\Directory\Background 操作: 很显然,我们将Background\Powershell的ShowBasedOnVelocityId键改为HideBasedOnVelocityId键,即可shift+右键时不显现“在此处打...

MrTsai_cpp的博客 1297

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

关于Beyond Compare添加右键菜单的研究

BC官方的便携版(zip版)是不支持集成到右键菜单的。此文提供了一种方便集成如安装版一样强大的右键菜单的简单方法,个人研究所得,与君共勉。

MrTsai_cpp的博客 4488

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

大端小端格式详解

1. 什么是大端,什么是小端: 所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中; 所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。 2.为什么会有大小端: 为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。但是在C语言中除了8bit的cha

zhaoshuzhaoshu的专栏 8万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Qt的四种多线程讲解

Qt 提供了对线程的支持,包括一组与平台无关的线程类,一个线程安全的发送事件和跨线程的信号-槽关联。 通常有四种方式来实现多线程Qt程序。

MrTsai_cpp的博客 4732

Base64编码源码及编码长度计算公式分享(C++)

Base64如何编码及长度计算公式. Base64要求把每三个8Bit的字节转换为四个6Bit的字节(3*8 = 4*6 = 24),数据不足3字节,用0补足; 因为6位二进制数可以表示64个不同的数,因此只要确定了字符集(含64个字符),并为其中的每个字符确定一个唯一的编码,就可以通过正向与反向映射将二进制字节转换为Base64编码或反之。编码后的长度如何确定呢 为了保存结果,更合理的分配大小存储,有时候需要确定编码输出后的长度。

MrTsai_cpp的博客 4548

流媒体协议技术等大总结

本文总结流媒体传输所用的协议和技术,包括rtsp, rtp, sip, webrtc,以及gb28181等

MrTsai_cpp的博客 1595

Qt Openssl之TLS initialization failed问题溯源

Qt使用openssl进行客户和服务端https通信,当部署程序到新主机时,出现上述QSslSocket的TLS初始化失败问题。该问题的根源在于发布程序中并没有包含openssl动态库(或者包含错误的版本),而且新机器上也没有安装openssl动态库。

MrTsai_cpp的博客 1553
上一篇: 谈谈int*转const int* &的问题
下一篇: 吐槽下目前最新的Qt5.13.0(618发布)
觉行无量
博客等级 码龄8年 24粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值