字节序问题

高低地址与高低字节

高低地址:

最高内存地址 0xFFFFFFFF

栈区(从高内存地址,往 低内存地址发展。即栈底在高地址,栈顶在低地址)

堆区(从低内存地址 ,往 高内存地址发展)

全局区(常量和全局变量)

代码区

最低内存地址 0x00000000

地址由低到高→

0x4001 0x4002 0x4003 0x4004

高低字节

十进制中高位在前,低位在后

12345678 由高到低依次为 0x12 0x34 0x56 0x78

字节序

网络字节序(大端序)

存储方式:高位在低地址

12345678 → 0x12 0x34 0x56 0x78

主机字节序(小端序)

存储方式:高位在高地址

12345678 → 0x78 0x56 0x34 0x12

例子

在主机中存储数据12345678(方便举例)

以int四字节存储时,以小端序进行存储

存储结果为:0x78 0x56 0x34 0x12

此时通过网络传输到对端,在不进行字节序转化情况下,网络字节序按高位先传输

传输到对端时:0x12 0x34 0x56 0x78

此时对端通过int四字节读取,主机为小端序,因此读取数据时会自动转换

读取数据为:0x78 0x56 0x34 0x12

因此从本地12 34 56 78到对端变为78 56 34 12

注:实际存储时int类型12345678会转化为十六进制存储

附:将188存入char类型中时,188为int类型,存储时为 1011 1100(正数原码补码相同)

在char类型中只取最后八位,此时存入计算机内为补码,因此此时补码10011 1100实际为十进制 -68

在使用%x打印时,会将其转为整形打印,因此前三个字节也会打印

打印内容为补码:0xffffffff - 0x44(-68正数原码)+ 1 = ffffffbc

附:使用cout打印时与printf不同,printf会根据%类型进行转换

使用cout打印char类型时,cout会当成字符类型打印

char a = 1;
cout << "a:" << a << endl;

上述打印结果为空,a:

这里的输出是ASCII码值为1的不可打印字符,因为字符1在ASCII码表中对应的是不可打印的控制字符“SOH”

因此,当我们想使用cout打印输出十六进制时,应当进行类型转换

char a = 77;
cout << hex << "a:" << (int)a << endl; //不转为int类型则按照字符型打印,ASCII码为77 → M

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

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

相关文章

机器学习周记(第二十八周:文献阅读-GSTPro)2024.1.29~2024.2.4

目录 摘要 ABSTRACT 1 论文信息 1.1 论文标题 1.2 论文摘要 1.3 论文背景 2 论文模型 2.1 问题描述 2.2 总体架构 2.3 动态图神经控制微分方程&#xff08;Dynamic Graph Neural Controlled Differential Equations&#xff09; 2.3.1 空间处理&#xff08;Spatial…

通过手写简易版RPC理解RPC原理

RPC是什么 所谓的RPC其实是为了不同主机的两个进程间通信而产生的&#xff0c;通常不同的主机之间的进程通信&#xff0c;程序编写需要考虑到网络通信的功能&#xff0c;这样程序的编写将会变得复杂。RPC就来解决这一问题的&#xff0c;一台主机上的进程对另外一台主机的进程发…

【实证分析】地级市-资本存量测算结果数据集(含计算公式及原始数据)( 2003-2021年)

该数据为地级市资本存量测算&#xff08;2003-2021年&#xff09;&#xff0c;提供了中国地级市在该期间内资本存量的详细测算结果&#xff0c;包括两种基于2011年和2006年基期的测算方式。该数据集利用了从城市统计年鉴和中国统计年鉴获取的固定资产投资数据及其增速&#xff…

P8818 [CSP-S 2022] 策略游戏

[CSP-S 2022] 策略游戏 题目描述 小 L 和小 Q 在玩一个策略游戏。 有一个长度为 n n n 的数组 A A A 和一个长度为 m m m 的数组 B B B&#xff0c;在此基础上定义一个大小为 n m n \times m nm 的矩阵 C C C&#xff0c;满足 C i j A i B j C_{i j} A_i \times …

微软的Copilot for Sales(销售助手)和Copilot for Service(服务助手)现已全面开放

深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领域的领跑者。点击订阅&#xff0c;与未来同行&#xff01; 订阅&#xff1a;https://rengongzhineng.io/ 。 微…

C++ 动态规划 线性DP 数字三角形

给定一个如下图所示的数字三角形&#xff0c;从顶部出发&#xff0c;在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点&#xff0c;一直走到底层&#xff0c;要求找出一条路径&#xff0c;使路径上的数字的和最大。 73 8 8 1 02 7 4 4 4 5 2 6 5 输入格式 …

CMake生成osg的FFMPEG插件及Windows下不生成VS工程问题解决

在Windows下&#xff0c;如何利用CMake生成osg的FFMPEG插件&#xff0c;请参考如下博文&#xff0c;同生成jpeg插件类似&#xff1a; osg第三方插件的编译方法&#xff08;以jpeg插件来讲解&#xff09;。 如下为生成FFMPEG时必要的设置&#xff1a; 注意&#xff1a; 一定要…

Linux——如何使用sftp命令轻松上传和下载文件

对于Linux用户来说&#xff0c;通过sftp命令进行文件上传和下载是一个非常常见的操作。SFTP是SSH File Transfer Protocol的简写&#xff0c;它是基于安全shell&#xff08;SSH&#xff09;协议的一种文件传输协议&#xff0c;可以实现加密传输&#xff0c;防止网络窃听和篡改。…

SpringCloud引入父项目需要注意的地方

要引入两个组件&#xff0c;一个是SpringCloud一个是SpringCloudAlibaba 组件依赖关系详细可查看&#xff1a;https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E 例如&#xff1a; <spring.cloud.alibaba.version>2021.0.1.0&…

【精选】java继承、object、封装初阶(子类,父类继承)

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏…

JS document对象详解

JS document对象详解 1.document对象简介2.document对象常用的属性document.URLdocument.referrer 3.document对象方法document.writedocument.writeln 1.document对象简介 document对象其实是window对象下的一个子对象&#xff0c;它操作的是HTML文档里所有的内容。实际上&am…

[文本挖掘和知识发现] 03.基于大连理工情感词典的情感分析和情绪计算

作者于2023年8月新开专栏——《文本挖掘和知识发现》&#xff0c;主要结合Python、大数据分析和人工智能分享文本挖掘、知识图谱、知识发现、图书情报等内容。这些内容也是作者《文本挖掘和知识发现&#xff08;Python版&#xff09;》书籍的部分介绍&#xff0c;本书预计2024年…

获取未来的5分钟整点时间05,10,15,20,25...

比如预约网约车的时候&#xff0c;是按5分钟的整点时间 GetMapping("/getFiveNextTime")public String fiveNextTime(RequestParam(defaultValue "0") Integer interval) {Calendar calendar Calendar.getInstance();calendar.add(Calendar.MINUTE, (5 …

二、人工智能之提示工程(Prompt Engineering)

黑8说 岁月如流水匆匆过&#xff0c;哭一哭笑一笑不用说。 黑8自那次和主任谈话后&#xff0c;对这个“妖怪”继续研究&#xff0c;开始学习OpenAI API&#xff01;关注到了提示工程(Prompt Engineering)的重要性&#xff0c;它包括明确的角色定义、自然语言理解&#xff08;…

软件测试学习笔记-测试用例的编写

7中测试分类 按照阶段可划分单元测试、集成测试、系统测试、验收测试。代码可见度划分黑盒测试、灰盒测试、白盒测试 单元测试&#xff1a;针对源代码的测试 集成测试&#xff1a;针对接口进行测试 系统测试&#xff1a;针对功能和非功能的测试 验收测试&#xff1a;公测、内测…

STM32外部中断(红外传感器与旋转编码器计数案例)

文章目录 一、介绍部分简介中断系统中断执行流程STM32中断NVIC基本结构NVIC优先级分组外部中断外部中断简介外部中断基本结构外部中断的流程AFIOEXTI框图 相关外设介绍旋转编码器介绍硬件电路对射式红外传感器 二、代码实现对射式红外传感器计次连接电路封装红外传感器与中断函…

【开源】基于JAVA+Vue+SpringBoot的河南软件客服系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统管理人员2.2 业务操作人员 三、系统展示四、核心代码4.1 查询客户4.2 新增客户跟进情况4.3 查询客户历史4.4 新增服务派单4.5 新增客户服务费 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的河…

2024/2/3学习记录

微信小程序 小程序中组件的分类 视图容器 view 普通视图区域&#xff0c;类似于 div 常用来实现页面的布局效果。 scroll-view 可滚动的视图区域&#xff0c;常用来实现滚动列表效果 swiper 和 swiper-item 常用 swiper 组件的常用属性 轮播图容器组件和轮播图item组件 基…

【力扣刷题练习】300. 最长递增子序列

题目描述&#xff1a; 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#xff0c;[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的…

vue3前端开发,模拟微信红包封面领取样式-旋转+弹屏+逐渐浮现

vue3前端开发,模拟微信红包封面领取样式-旋转弹屏逐渐浮现&#xff01;今天花费了一个上午的时间摸索了这个代码。分享给大家一起学习。微信红包封面的领取活动样式。会旋转&#xff0c;渐渐浮现&#xff0c;弹屏等都有。 大家自己把它图片改成自己的图片地址就行了。 <scr…