做视频解析网站播放器和接口文化传媒主播公司 东莞网站建设

张小明 2026/1/11 18:46:05
做视频解析网站播放器和接口,文化传媒主播公司 东莞网站建设,公司宣传册模板图片,wordpress页面发布失败为什么提示#xff1a;文章写完后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 文章目录前言这篇博客主要围绕整数、大小端字节序、浮点数在内存中的存储。一、整数在内存中的存储1. 二进制表示形式2. 存储方式3. 常见整数类型4. 特殊整数处理5. 内存布局…提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档文章目录前言这篇博客主要围绕整数、大小端字节序、浮点数在内存中的存储。一、整数在内存中的存储1. 二进制表示形式2. 存储方式3. 常见整数类型4. 特殊整数处理5. 内存布局示例二、⼤⼩端字节序和字节序判断1. 什么是字节序2. 为什么需要关注字节序3. 判断当前系统的字节序方法1使用C程序判断方法2使用Python判断方法3使用命令行工具Linux4. 字节序转换函数C语言中的转换函数Python中的转换手动实现字节序转换5. 实际应用示例网络协议处理文件格式处理嵌入式开发6. 常见问题与解决方案三、浮点数在内存中的存储1. IEEE 754标准2. 存储结构详解符号位Sign指数部分Exponent尾数部分Mantissa/Significand3. 特殊值表示4. 舍入规则5. 精度问题6. 实际应用注意事项总结前言这篇博客主要围绕整数、大小端字节序、浮点数在内存中的存储。一、整数在内存中的存储1. 二进制表示形式整数在计算机内存中是以二进制形式存储的使用补码表示法。补码系统有以下特点正数的补码是其二进制原码负数的补码是其绝对值的二进制取反后加1最高位为符号位0表示正数1表示负数例如8位整数5 的补码00000101-5 的补码11111011取反11111010 12. 存储方式整数在内存中的存储遵循以下规则大小端存储大端模式(Big-endian)高位字节存储在低地址小端模式(Little-endian)低位字节存储在低地址例如0x12345678在内存中的存储大端12 34 56 78小端78 56 34 12对齐方式现代CPU通常要求数据按照其字长对齐32位系统通常要求4字节对齐64位系统通常要求8字节对齐3. 常见整数类型不同编程语言中的整数类型及其典型存储大小类型C/CJavaPython存储大小有符号8位charbyteint1字节无符号8位unsigned char--1字节有符号16位shortshortint2字节无符号16位unsigned shortchar-2字节有符号32位intintint4字节无符号32位unsigned int--4字节有符号64位long longlongint8字节无符号64位unsigned long long--8字节注意Python的int类型会自动扩展以适应大整数实际存储大小会动态变化。4. 特殊整数处理零的表示所有位都为0补码系统中0和-0的表示相同最小负数的表示对于n位整数最小负数是-2^(n-1)例如8位整数的最小值是-128补码10000000溢出处理无符号整数回绕0xFFFFFFFF 1 0x00000000有符号整数行为未定义C/C或抛出异常某些语言5. 内存布局示例32位整数0xAABBCCDD在小端系统中的内存布局地址 内容 0x1000 DD 0x1001 CC 0x1002 BB 0x1003 AA理解整数在内存中的存储方式对于以下场景很重要网络协议开发处理字节序二进制文件解析内存敏感型应用开发跨平台数据交换二、⼤⼩端字节序和字节序判断1. 什么是字节序字节序Endianness指的是多字节数据在计算机内存中的存储顺序。主要有两种类型大端字节序Big-Endian最高有效字节MSB存储在最低的内存地址类似于我们书写数字的顺序从左到右示例0x12345678 在内存中的存储顺序为 12 34 56 78采用大端序的架构PowerPC、SPARC、早期的ARM等小端字节序Little-Endian最低有效字节LSB存储在最低的内存地址类似于倒序存储示例0x12345678 在内存中的存储顺序为 78 56 34 12采用小端序的架构x86、x86-64、现代ARM可配置2. 为什么需要关注字节序字节序问题主要在以下场景中需要注意跨平台数据传输网络通信网络协议通常采用大端序文件格式交换不同架构设备间的数据共享二进制数据处理解析网络数据包读取二进制文件处理硬件寄存器调试和逆向工程分析内存数据时需要知道字节序理解寄存器和内存中的值对应关系3. 判断当前系统的字节序方法1使用C程序判断#includestdio.hintmain(){unsignedintnum0x12345678;unsignedchar*p(unsignedchar*)num;if(*p0x12){printf(Big-Endian\n);}elseif(*p0x78){printf(Little-Endian\n);}else{printf(Unknown Endianness\n);}return0;}方法2使用Python判断importsysifsys.byteorderlittle:print(Little-Endian)else:print(Big-Endian)方法3使用命令行工具Linuxlscpu|grepEndian# 或echo-n I|od -to2|head-n1|cut-f2 -d |cut-c6# 输出1表示小端0表示大端4. 字节序转换函数C语言中的转换函数#includearpa/inet.huint32_thtonl(uint32_thostlong);// 主机到网络(32位)uint16_thtons(uint16_thostshort);// 主机到网络(16位)uint32_tntohl(uint32_tnetlong);// 网络到主机(32位)uint16_tntohs(uint16_tnetshort);// 网络到主机(16位)Python中的转换importsocket value0x12345678network_ordersocket.htonl(value)# 主机序转网络序host_ordersocket.ntohl(network_order)# 网络序转主机序手动实现字节序转换32位整数的转换示例uint32_tswap_endian(uint32_tval){return((val24)0xff000000)|((val8)0x00ff0000)|((val8)0x0000ff00)|((val24)0x000000ff);}5. 实际应用示例网络协议处理处理TCP/IP首部时需要注意IP首部中的所有字段都是大端序TCP首部中的所有字段都是大端序接收数据后需要使用ntohs/ntohl转换文件格式处理常见二进制文件的字节序PNG大端序GIF小端序JPEG大端序ELF与目标平台相关嵌入式开发访问硬件寄存器时需要特别注意读取传感器数据配置设备寄存器与FPGA通信6. 常见问题与解决方案数据错位问题现象接收到的数据与预期不符解决方案检查发送方和接收方的字节序是否一致跨平台兼容性使用标准网络字节序大端进行数据交换在文件头中加入字节序标识性能考虑在已知字节序的系统中避免不必要的转换批量转换优于逐个转换调试技巧使用十六进制查看器检查原始数据打印内存内容对比预期值三、浮点数在内存中的存储1. IEEE 754标准浮点数在内存中的存储遵循IEEE 754标准该标准定义了浮点数的二进制表示格式。主要有两种格式单精度浮点数32位1位符号位8位指数位23位尾数位双精度浮点数64位1位符号位11位指数位52位尾数位2. 存储结构详解符号位Sign位于最高位0表示正数1表示负数示例-3.14的符号位为1指数部分Exponent采用偏移表示法Bias单精度偏移量为127双精度偏移量为1023实际指数 存储值 - 偏移量示例单精度浮点数中存储的指数值为130实际指数为130-1273尾数部分Mantissa/Significand采用隐含最高位1的表示方法规范化数只存储小数部分示例1.1011只需存储10113. 特殊值表示IEEE 754标准还定义了特殊值的表示零值全0表示无穷大指数全1尾数全0∞符号位0-∞符号位1NaN非数指数全1尾数非0用于表示无效运算结果如0/04. 舍入规则IEEE 754定义了四种舍入模式向最近值舍入默认向零舍入向正无穷舍入向负无穷舍入5. 精度问题由于浮点数的二进制表示特性会导致一些十进制小数无法精确表示如0.1在二进制中是无限循环小数这解释了为什么0.1 0.2 ! 0.36. 实际应用注意事项在编程中需要注意避免直接比较浮点数相等应该比较两者差值是否小于某个极小值如1e-6注意累积误差多次运算可能导致误差累积选择合适的浮点类型根据精度需求选择单精度或双精度注意特殊值的处理检查NaN和无穷大的情况总结以上就是本文总结的内容关于数据在内存中的存储。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

建网站公建网站公司家具网站建设目的及功能定位

STM32下载失败?别急,先查这几点JLink配置陷阱 你有没有遇到过这样的场景:STM32开发板通电正常,J-Link也插上了,Keil或STM32CubeIDE里一点“Download”,结果弹出一个无情的提示——“ No target connected …

张小明 2026/1/10 3:27:59 网站建设

旅游网站设计参考文献网站页面相关产品链接怎么做

优化你的 Git 使用技巧 配置 Git 的默认编辑器 在使用 Git 时,你可能希望更改其默认编辑器。通过配置 core.editor 配置设置,你可以为特定仓库或全局(甚至整个系统)覆盖默认编辑器。 配置 core.editor 的基本原理 core.editor 配置值是编辑器的名称,通常该编辑器…

张小明 2026/1/9 15:01:45 网站建设

做营销型网站多少钱专业做网站系统

一、任意文件读取 开局我们通过扫描器获得一个任意文件读取漏洞,并且可列目。我们来看下代码当中的漏洞点: 这里对传入的参数filename未做任何过滤,可直接进行文件读取。 1.1思考 那么通过任意文件读取漏洞我们都可以做什么? …

张小明 2026/1/6 13:25:39 网站建设

小程序招商加盟平台seo服务公司深圳

2025年geo系统源码开发公司技术方案有那些2025 年 GEO(地理信息相关)系统源码开发公司的技术方案,核心围绕多源定位融合、AI 深度适配、模块化架构、双存储 / 云原生部署、全链路效果溯源五大方向,适配不同企业规模与场景需求&…

张小明 2026/1/10 5:31:15 网站建设

描述一下网站建设的基本流程图怎么制作网站教程步骤

FSDP全分片数据并行初探:PyTorch-CUDA-v2.7支持情况 在大模型训练日益成为AI研发核心任务的今天,显存瓶颈始终是横亘在工程师面前的一道高墙。一个拥有数十亿参数的语言模型,动辄需要上百GB显存才能加载——这早已超出单张A100的容量极限。传…

张小明 2026/1/9 8:34:05 网站建设

网站系统升级中广告传媒公司取名

面向对象编程 多态 认识多态 为什么是这样,因为就是这样规定的,多态是针对对象多态,而没有针对成员变量多态 package com.itheima.polymorphsm;public class Tset {public static void main(String[] args) {//目标:认识多态的…

张小明 2026/1/7 14:28:20 网站建设