大小端总结

Qt|大小端数据转换 我的机器cpu,如果不采取任何处理,这里输出的确实是小端数据,如果是大端那么就会输出对应的“1234567843218756”。如果上文中举例的协议定的就是小端数据传输那么就是这样写,无需做任何处理。后面打算写Qt关于网络编程的博客,网络编程就绕不开字节流数据传输,字节流数据的传输一般是根据协议来定义对应的报文该如何组包,那这就必然牵扯到了大端字节序和小端字节序的问题了。回到关于大小端的问题,代码里面采用的是结构体转QByteArray,这样就牵扯到了依靠系统自己的大小端来处理了,代码不灵活。 阅读详情

由于主控与显控之间采用的是UDP协议,所以显控给主控发送的数据要按照网络字节序(也就是大端)发送,也就是低字节数据放到高地址,举例:比如要把tmp这样一个int四字节的数据,unsigned int tmp = 0x11223344;放进array中发送出去,需要下面这样赋值:

QByteArray array;

Array[0]=44;

Array[0]=33;

Array[0]=22;

Array[0]=11;

由于一般显控主机内核是x86架构的,都是小端存储的,所以在应用UDP协议的时候不能直接用结构体赋值,然后强转char*发送,需要手动先转换成网络字节序,主控接收端接收到数据再用结构体指针强转才能正确。

C语言中的大小端 文章目录1.什么是大小端2.大小端的意义3.如何确定大小端3.1使用联合体来检测 1.什么是大小端 大小端是内存存储字节的两种方式,一个是大端存储,一个是小端存储。采用大小模式对数据端进行存放的主要区别在于存放的字节顺序,大端方式将高位存放在低地址,小端方式将高位存放在高地址。采用大端方式进行数据存放符合人类的正常思维,而采用小端方式进行数据存放利于计算机处理。 大端存储:就是把一个数的低位字节序的内容存放到高地址处,高位字节序的内容存放在低地址处。 小端存储:就是把一个数的低位字节序的内容存放到低地址处 阅读详情

相关推荐

【C++】什么是大小端,如何判断大小端

文章目录什么是大小端大小端与操作系统有关嘛如何判断大小端方法一方法二 什么是大小端 大小端也可以理解为字节顺序,或者端序、尾序,就是大端序(Big-Endian)、小端序(Little-Endian)。 1.大端模式:是指数据的高字节保存在内存的低地址中; 2.小端模式:是指数据的高字节保存在内存的高地址中; 例如0x12345678 大小端与操作系统有关嘛 大小端与操作系统是没有关系的 大小端主要有用于存储的顺序,与存储器(硬件)关系比较大 编译器和操作系统仅仅是配合CPU编译好相应的代码,而

风铃的博客 4526

springBoot接收UDP协议数据快速上手教程

简单对udp的操作,不是很全面。功力不够,不喜勿喷

可乐的博客 3880

正确区分大小端模式

正确区分大小端模式 嵌入式开发经常会遇到大小端的问题,往往学习后,过一段时间就又忘记了,这里总结一下,希望给大家留下深刻的记忆。 字节顺序是指占内存多于一个字节类型的数据在内存中的存放顺序,通常有小端和大端两种字节顺序,这两种你只需要深刻地记住其中的一种就可以,另一种恰好和它相反,不需要刻意记忆了,那么我们就记住“大端模式”吧。 大端模式(Big-Endian):是指数据的高字节保存在内存的...

papership的博客 6022

socket如连接linux上的端口号_Linux| |对于UDP的学习

UDP# 前序UDP(用户数据报协议)没有连接的,是面向数据报的,是不可靠# 套接字就是IP地址+端口号IP地址:4字节端口号:2字节,也就是说范围是0~65536端口号分为知名端口号0--1023:http,ssh,ftp,telnet等一些协议端口号都是固定的,对于操作系统来说是不能对其进行分配的山东掌趣网络科技一些固定的端口号ssh服务器,使用22端口ftp服务器,使用21端口telnet服...

weixin_39750731的博客 345

大小端字节序详解

正确区分大小端字节序,手把手带你做大小端面试题。

威威的博客 6544

Java使用ByteBuffer处理大小端踩坑

Java使用ByteBuffer处理大小端踩坑1. 什么是大小端2 踩坑 1. 什么是大小端 大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放; 小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。 JVM默认为大端模式 ByteOr

ZyManTou的博客 6171

Java用udp接收unsigned char类型数组处理方式,这里以十六进制为例

1,用byte数组接收,因为unsigned char范围是0-255,byte是-128-127,所有用byte类型数组接收后将byte转为int类型接收 public void fun(){ try { //创建接收方的套接字,监听端口号 DatagramSocket getSocket = new DatagramSocket(8002); ...

miss_shy的博客 1644

ptrade量化策略之ST股弱转强,回测年化115%

本策略的核心是精选ST股票,国九条过滤,防止直接暴雷退市,只做ST股票的弱转强

qq_29301281的博客 1785

大端存储与小端存储

判断 利用union判断 #include <iostream> #include <cinttypes> bool IsBigEndian() { union { uint8_t a; uint16_t b; } u; u.b = 0xff00; return u.a == 0xff; } int main() { if(IsBigEndian()) { std::cout <<

weixin_43868793的博客 302

5分钟搞定单细胞marker基因气泡图:scDotPlot保姆级教程(含Seurat适配)

本文提供了一份详细的scDotPlot R包使用教程,帮助用户在5分钟内完成单细胞marker基因气泡图的绘制。教程涵盖环境准备、Seurat和SingleCellExperiment对象的适配处理、进阶可视化技巧及自动化报告生成,特别适合生物信息学新手和临床研究者快速掌握这一高效的可视化工具。

weixin_29047545的博客 261

企业级防火墙实战:用深信服AF8.0打造安全办公网络(含流控/僵尸防护配置)

本文详细介绍了如何利用深信服AF8.0防火墙构建企业级安全办公网络,涵盖设备初始化、多接入方式配置、三维一体安全防护体系(包括应用控制、僵尸防护和智能流控)以及典型问题排查。通过实战案例和配置模板,帮助IT管理员高效部署和优化网络安全管理,提升企业网络安全防护能力。

weixin_28716443的博客 281

【校招 --阶段二 网络编程】UDP套接字编程

一 、预备知识 1、 理解源IP地址和目的IP地址 在IP数据包中有两个IP地址,一个是源IP地址,一个是目的IP地址。IP地址负责把数据从一台主机硬件传输到另一台主机硬件,IP地址标识这台主机全网的唯一性,硬件的唯一性 2 端口号(port) IP地址是标识全网唯一一台主机,而一台主机有很多进程,所以端口号用来标识一台主句中特定的进程。所以IP地址+端口号=全网唯一一个进程(ip+端口号叫做套接字) 3 端口号和进程ID之间的关系 我们在系统编程中了解到每一个进程都有一个唯一的Id叫做pid,此处端口号也

qq_50408340的博客 571

STM32CubeIDE(CUBE-MX hal库)----RTC时钟断电保持与时间校准实战

本文详细介绍了在STM32CubeIDE中使用CUBE-MX和HAL库实现RTC时钟断电保持与时间校准的实战方法。通过硬件配置、后备寄存器(BKP)操作及软件校准策略,确保嵌入式设备在断电后仍能保持准确时间,适用于智能电表、环境监测等物联网应用场景。

weixin_29189373的博客 216

C语言:大小端模式、判断大小端、大小端转换

对于一个存储空间大于 1 个字节的数据,在内存中有两种存储模式, 大端模式 (big-endian):数据的高字节在内存的低地址存放,数据的低字节在内存的高地址存放 小端模式 (little-endian):数据的高字节在内存的高地址存放,数据的低字节在内存的低地址存放。判断主机字节序 (主机大小端),可以用联合体(union),指针,强制转换成 char 类型等方法。用位操作进行大小端转换,在网络编程中,也可以使用 htonl, htons, ntohl, ntohs 等函数。

天道酬勤 2万+

阿里云导出的镜像raw转换成vmdk格式工具

阿里云导出的镜像raw转换成vmdk格式工具 1.安装java环境,安装教程不介绍了 2.raw2vmdk软件下载: 在我的链接里面: 3.使用 打开cmd.bat软件: java -jar raw2vmdk.jar (原镜像)C:\\images\\raw\\disk.img (转换的镜像)D:\\images\\vmdk\\disk.vmdk 4.vmware打开vmdk文件 ...

3843

SpringCloud详细教程(下)

SpringCloud详细教程,springcloud完全教程。Springcloud微服务教程(上)的姊妹篇:介绍了其它SpringCloud组件。

鸟哥哥的专栏 4万+

什么是大小端,数组大小端,位域大小端,结构体大小端

什么是大小端,数组大小端,位域大小端,结构体大小端

linux,单片机,杂记 5465

096、PCIE环回模式(Loopback):调试时自己和自己对话的利器

摘要: PCIE环回模式是调试利器,通过让芯片内部数据自环来定位问题层级。文章详解三种环回模式:物理层环回验证基础收发,数据链路层环回测试DLLP机制,事务层环回验证端到端协议。分享了实战中的典型问题(时钟异常、状态机卡死、计数器失真)和"从下往上"的调试流程,强调要区分调试与生产功能,建议早期验证环回模式。通过具体代码示例和调试案例,说明合理使用环回模式能显著提升排查效率,是PCIE调试必备技能。(149字)

z534437748的博客 105

什么是大小端?如何确定大小端?

一、什么是大小端? 对于一个由2个字节组成的16位整数,在内存中存储这两个字节有两种方法:一种是将低序字节存储在起始地址,这称为小端(little-endian)字节序;另一种方法是将高序字节存储在起始地址,这称为大端(big-endian)字节序。 假如现有一32位int型数0x12345678,那么其MSB(Most Significant Byte,最高有效字节)为0x12,其LSB...

wwwlyj123321的博客 12万+

SpringBoot4.0+JDK25+GraalVM实战:云原生新纪元,微服务性能翻倍的落地指南

三者的组合不是偶然,而是“框架优化+JDK升级+虚拟机革新”的必然结果——SpringBoot4.0完善了对GraalVM原生镜像的支持,JDK25强化了云原生与AOT编译能力,GraalVM则提供了极致的启动速度和资源利用率,三者协同,刚好命中云原生微服务的核心痛点。SpringBoot4.0+JDK25+GraalVM的组合,不是简单的版本升级,而是云原生微服务的一次性能革命。

2601_94871597的博客 1141

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

什么是大小端?怎么分辨大小端?

大小端是针对非单字节数据的存取,比如short型,int型等。大端存储是将数据的高位存储在内存的低地址处,小端存储是将数据的低位存储在内存的低地址处。

m0_58250087的博客 3万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

STM32的大小端模式——什么是大小端模式?

目录什么是大小端模式为什么会有大小端模式之分什么情况需要考虑大小端模式常见的设备的大小端模式测试大小端模式例程 什么是大小端模式 大端模式Big-Endian:高字节存于内存低地址,低字节存于内存高地址。 小端模式Little-Endian:低字节存于内存低地址,高字节存于内存高地址。 网络字节序:TCP/IP各层协议将字节序定义为Big-Endian,因此TCP/IP协议中使用的字节序通常称之为网络字节序。 首先我们来看下数据在大小端两种模式下存储图,假设有一个整型数0x12345678,从图中可以看出明

a只如初见的博客 1万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

一文看懂计算机中的大小端(Endianess)

本文主要探讨计算机中大小端的相关概念以及如何进行大小端的判断和转换等。

Mr_Jaychong的博客 1万+

大小端问题

大小端问题     最近工作中,有两次遇到大小端问题,所以花时间写这篇日志,总结一下。 1.      实际需求          (1) 前段时间写了一个修复损坏的gzip文件的tool,在Linux Server上编译运行没有问题。但是在Solaris Server上运编译运行,结果总是和预期的不一致,跟踪发现是由大小端问题导致的;         (2) 最近在写一个跨平台的

yasaken 2万+

彻底弄懂什么是大小端

目录 一、什么是大小端? 二、举列: 三、为什么有大小端模式之分呢? 四、经典笔试题:用C语言代码测试机器大小端 一、什么是大小端? 表示数据在存储器中的存放顺序 小端模式:数据的高字节,存放在高地址中。计算机读取数据的方向,是从高地址开始读取的; 大端模式:数据的高字节,存放在低地址中。计算机读取数据的方向,是从低地址开始读取的; 记忆口诀:“小端低低” iOS都是小端模式。 二、举列: 列1: 要存放的数据:0x12345678 低字节为:0x12 高字节为:0x78

eli的博客 1万+

计算机大小端以及大小端查看

数据在计算机中存储的时候,分为大端存储和小端存储,每个计算机的大小端存储都不同,为了了解自己的机器中的大小端类型,可以通过很多方法查看。这里我们主要讲解两种查看大小端的方法。 那么到底什么是大小端呢? 大端存储是 数据的低位存储在高地址处 小端存储是 数据的低位存储在低地址处 我个人在理解的时候,将大小端的存储理解为数据在存储的时候,可以分为从内存的 低到高 存储和从 高到低 存储,也可以理解为从内存的头部开始存储和从尾巴开始存储,这样就可以理解了吧。从头开始存...

【欢迎关注公众号:冬瓜白】 2242
上一篇: [转]大端小端详解(含代码及详细注释)
下一篇: 不常用但是很又用的函数等
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值