big_endian和little_endian(转)

关于MOS管栅极和栅介质(氧化物)的材料选择 大概解释了高K材料作为栅介质的好处,以及为什么会带来好处,同时引出了金属栅的优点,总结了使用高K材料和金属栅的原因。 阅读详情

出处:http://www.cnblogs.com/hisiqi/archive/2012/10/04/2711472.html


big_endian 、little_endian 用于自动改变二进制位存放顺序 
Big Endian and Little Endian 

    谈到字节序的问题,必然牵涉到两大CPU派系。那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU。PowerPC系列采用big endian方式存储数据,而x86系列则采用little endian方式存储数据。那么究竟什么是big endian,什么又是little endian呢? 

     其实big endian是指低地址存放最高有效字节(MSB),而little endian则是低地址存放最低有效字节(LSB)。 
     用文字说明可能比较抽象,下面用图像加以说明。比如数字0x12345678在两种不同字节序CPU中的存储顺序如下所示:

Big Endian 

   低地址                                             高地址 
   -----------------------------------------> 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |      12      |       34     |      56       |      78     | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 

Little Endian 


   低地址                                             高地址 
   -----------------------------------------> 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |      78      |       56     |      34       |      12     | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 

     从上面两图可以看出,采用big endian方式存储数据是符合我们人类的思维习惯的。而little endian,!@#$%^&*,见鬼去吧 -_-||| 

     为什么要注意字节序的问题呢?你可能这么问。当然,如果你写的程序只在单机环境下面运行,并且不和别人的程序打交道,那么你完全可以忽略字节序的存在。但是,如果你的程序要跟别人的程序产生交互呢?尤其是当你把你在微机上运算的结果运用到计算机群上去的话。在这里我想说说两种语言。C/C++语言编写的程序里数据存储顺序是跟编译平台所在的CPU相关的,而JAVA编写的程序则唯一采用big endian方式来存储数据。试想,如果你用C/C++语言在x86平台下编写的程序跟别人的JAVA程序互通时会产生什么结果?就拿上面的0x12345678来说,你的程序传递给别人的一个数据,将指向0x12345678的指针传给了JAVA程序,由于JAVA采取big endian方式存储数据,很自然的它会将你的数据翻译为0x78563412。什么?竟然变成另外一个数字了?是的,就是这种后果。因此,在你的C程序传给JAVA程序之前有必要进行字节序的转换工作。 

     无独有偶,所有网络协议也都是采用big endian的方式来传输数据的。所以有时我们也会把big endian方式称之为网络字节序。当两台采用不同字节序的主机通信时,在发送数据之前都必须经过字节序的转换成为网络字节序后再进行传输。ANSI C中提供了下面四个转换字节序的宏。

下面来看看测试代码是不是一致的:

 

复制代码
 1 package
 2 {
 3     import flash.display.Sprite;
 4     import flash.utils.ByteArray;
 5     import flash.utils.Endian;
 6     
 7     public class EndianTest extends Sprite
 8     {
 9         public function EndianTest()
10         {
11             init();
12         }
13 
14         private function init():void{
15         
16             var ba:ByteArray = new ByteArray();
17             ba.writeByte(0xAA);
18             ba.writeByte(0xBB);
19             ba.writeByte(0xCC);
20             ba.writeByte(0xDD);
21             
22             ba.position = 0;
23             trace(ba.endian,"0x"+ba.readUnsignedInt().toString(16).toUpperCase());
24             ba.position = 0;
25             ba.endian = Endian.LITTLE_ENDIAN;
26             trace(ba.endian,"0x"+ba.readUnsignedInt().toString(16).toUpperCase());
27         }
28     }
29 }
复制代码

 

输出:

bigEndian 0xAABBCCDD

littleEndian 0xDDCCBBAA


Android自动化新方案:ESP32-C3蓝牙HID模拟触控与手势操作实战(附源码) 本文详细介绍了使用ESP32-C3通过蓝牙HID协议实现Android设备自动化操作的完整方案。该硬件方案成本低廉且能完美规避系统风控,可模拟鼠标移动、点击及复杂手势操作,延迟低于50毫秒,适用于游戏连招和应用测试等场景。文章包含完整的源码实现和性能优化技巧。 阅读详情

相关推荐

从零到一:高通Memory QMVS测试环境搭建的避坑指南

本文详细介绍了高通Memory QMVS测试环境搭建的全流程避坑指南,涵盖硬件选择、软件配置、QMVS核心组件安装及测试执行技巧。重点解析了adb工具配置、QPST日志抓取等关键步骤,帮助工程师高效搭建稳定测试环境,避免常见兼容性和稳定性问题。

weixin_29251567的博客 555

big_endian和little_endian的说明

big_endian 、little_endian 用于自动改变二进制位存放顺序 Big Endian and Little Endian     谈到字节序的问题,必然牵涉到两大CPU派系。那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU。PowerPC系列采用big endian方式存储数据,而x86系列则采用little endian方式存储数据。那么究竟什么是

cslie的专栏 1084

从零搭建YOLOv2硬件加速器:基于PYNQ-Z2的Vivado HLS与Jupyter Notebook实战

本文详细介绍了如何从零搭建YOLOv2硬件加速器,基于PYNQ-Z2开发板,结合Vivado HLS与Jupyter Notebook实现高效目标检测。通过硬件加速,YOLOv2推理速度提升8倍,功耗降低80%。文章涵盖硬件准备、Vivado HLS工程配置、IP核集成、PYNQ部署及常见问题解决,为开发者提供完整实战指南。

weixin_29188997的博客 1008

fortran open使用

1)-------------------------------------------------------------------------------------- FOR的输出分 有格式form = 'formatted'、无格式form = 'unformatted'两种,前者是默认输出格式,即如果open语句里不声明form的话,那就是formatted。 无格式又分 直接存

meanwe712的专栏 2万+

Cursor概述及环境配置

Cursor 是一款基于 AI 的代码编辑器,支持 VS Code 配置迁移和 Java 开发环境配置。主要功能分为 Cursor Settings(AI 相关设置)和 Editor Settings(基础编辑器设置)。用户可通过一键导入或手动方式迁移 VS Code 配置,配置包括主题、扩展和快捷键等。对于 Java 开发,需配置 JDK 和 Maven 路径,并安装 Java 扩展插件以获得完整开发体验,如代码补全、调试和 Maven 项目管理。此外,Cursor 支持汉化配置,用户可安装中文语言包切换

Knight 3551

Simulink/Requirements Toolbox 学习(一):概述

编写、导入、导出需求并使需求正式化;两种创建需求的模块:需求编辑器、需求透视;描述需求的方式:文本、图像和关键字;通过导入和导出需求文件,与第三方需求管理工具(例如 Microsoft Word、Microsoft Excel®、IBM DOORS和 IBM DOORS Next)集成。涉及模块:Requirements Eidtor、Requirements Table等;

855

fortran判断文件打开状态_用FORTRAN95写的sgy文件读写程序

前一阵子,遇到修改地震数据道头的问题,很多软件没有这个功能,遂自己动手,查阅了大量文献资料。无奈我自己只会fortran,就写写吧,反正数值处理和计算并不需要很多界面。。。下面是子程序!C+-----------------------------------------------------------------------+!C| Module : SGY文件读写模...

weixin_28713299的博客 1023

【计算机组成原理实验】状态机实验

理解“状态机”概念,掌握“状态机”思想描述时序系统。通过下列三种基于D触发器的计数器结构,构建状态机的状态转移电路:环形计数器、扭环计数器和条件判断的扭环计数器。基于“状态机”原理,设计一个“交通灯”系统:控制红黄绿信号灯按照以下顺序循环点亮:“绿 黄 红 绿 ……”,红灯、绿灯和黄灯的亮灯持续时间可以通过拨码开关独立设置。红灯和绿灯是持续亮灯模式,黄灯则是闪烁亮灯模式。

Rover_jb的博客 1332

字节存储排序:大端和小端

当前的存储器,多以byte为访问的最小单元,当一个逻辑上的地址必须分割为物理上的若干单元时就存在了先放谁后放谁的问题,于是端(endian)的问题应运而生了,对于不同的存储方法,就有大端(big-endian)和小端(little- endian)两个描述。 字节排序按分为大端和小端,概念如下 大端(big endian):低地址存放高有效字节 小端(little endian)

klarclm的专栏 2811

基于 SoC 的卷积神经网络车牌识别系统设计(1)引言

通过 CPU 软核 IP 在纯 FPGA 平台上构建一个 AI SoC 卷积神经网络车牌识别系统,其中,缩放、填充层、卷积层、ReLU、池化层、全连接层 IP 都是 Verilog 设计的,同时集成了各种高性能的 IP。这是最具挑战性的 AI SoC 芯片设计项目,集成了 Python 卷积神经网络代码、Verilog 卷积神经网络硬件设计、ARM SoC 设计、ARM 与 FPGA 的交叉编译流程等等。这不仅是科研学习、集创竞赛、秋招求职的一个极具优势的精彩项目,也是目前最火热的芯片行业之中的一个...

新芯设计的博客 3780

34、Text2KGBench与GeoQuestions1089:知识图谱生成与地理空间问答的新进展

本文介绍了Text2KGBench和GeoQuestions1089在知识图谱生成与地理空间问答领域的最新进展。Text2KGBench提供了一个开放且可复现的基准,用于从文本生成知识图谱,并结合多个LLM模型和评估工具推动研究。GeoQuestions1089是目前最大的地理空间问答数据集,与GeoQA2系统结合,推动了地理空间问答系统的发展。文章还探讨了技术挑战和未来研究方向,包括多模态知识图谱生成和深度学习优化的地理空间问答系统。

css33的专栏 114

Big Endian与Little Endian区别

author:skatetime :2010/03/05 Big Endian与Little Endian区别 1. 什么是Big Endian和Little Endian? 在设计计算机系统的时候,有两种处理内存中数据的方法。一种叫为little-endian,存放在内存中最低位的数值是来自数据的最右边部分(也就是数据的最低位部分)。比如一个16进制数字0x12345

冰刀(skate) 1万+

Python3+PCAN-USB基于PCAN-Basic二次开发实现上位机功能

一、环境搭建 1.概述 本文主要是通过Python3与CAN总线工具PCAN-USB基于官方PCAN-Basic库实现CAN总线消息读写功能。 2.PCANBasic.py和PCANBasic.dll下载地址 https://www.peak-system.com/fileadmin/media/files/pcan-basic.zip 3.Python安装 下载地址:https://www.p...

测试领域技术分享 5185

big_endian和little_endian的说明收藏[转]

big_endian 、little_endian 用于自动改变二进制位存放顺序 Big Endian and Little Endian     谈到字节序的问题,必然牵涉到两大CPU派系。那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU。PowerPC系列采用big endian方式存储数据,而x86系列则采用little endian方式存储数据。那么究竟什么是

carina_yao的专栏 578

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

大端小端(Big- Endian和Little-Endian)[转]

原文出处: 字节序(Endian),大端(Big-Endian),小端(Little-Endian) http://www.cppblog.com/tx7do/archive/2009/01/06/71276.html 在各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机通信领 域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)...

abcdefg2201的博客 471

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

[转] 关于Big-Endian 和Little-Endian

今天在看微软关于fat格式的白皮书的时候看到了一个名词:Little-Endian什么是Big?什么是Little?要理解这个问题,必须要知道数据在机器中存储的规则.....    所谓的Little-Endian,就是我们在学习汇编时候的高高低低原则,而Bit-Endian就是刚刚相反,例如:12345678h这个数据,在不同机器中存储是不同的                 B

975

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Big Endian 和 Little Endian [转]

Big Endian 和 Little Endian [转] powerpc 发表于 2005-5-5 15:25:00 谈到字节序的问题,必然牵涉到两大CPU派系。那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU。PowerPC系列采用big endian方式存储数据,而x86系列则采用little endian方式存储数据。那么究竟什么是big endian,

cqhawk的专栏 614

【转】Big-Endian 和Little-Endian

今天在看微软关于fat格式的白皮书的时候看到了一个名词:Little-Endian 什么是Big?什么是Little?要理解这个问题,必须要知道数据在机器中存储的规则..... 所谓的Little-Endian,就是我们在学习汇编时候的高高低低原则,而Bit-Endian就是刚刚相反,例如:12345678h这个数据,在不同机器中存储是不同的 助解 [从大(高位)...

weixin_34107739的博客 85

[转] little endian和big endian的概念解释,判定与用途

little endian和big endian是表示计算机字节顺序的两种格式,所谓的字节顺序指的是长度跨越多个字节的数据的存放形式.         假设从地址0x00000000开始的一个字中保存有数据0x1234abcd,那么在两种不同的内存顺序的机器上从字节的角度去看的话分别表示为:        1)little endian:在内存中的存放顺序是0x00000000-0xcd,0x0

1035

[转] Big Endian 和 Little Endian

Big Endian 和 Little Endian [转] powerpc 发表于 2005-5-5 15:25:00 谈到字节序的问题,必然牵涉到两大CPU派系。那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU。PowerPC系列采用big endian方式存储数据,而x86系列则采用little endian方式存储数据。那么究竟什么是big endian,什么

liycumt的专栏 720

CPU的little-endian模式和big-endian模式(转)

在各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机通信领域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应该以什么样的顺序进行传送。如果不达成一致的规则,通信双方将无法进行正确的编/译码从而导致通信失败。目前在各种体系的计算机中通常采用的字节存储机制主要有两种:Big-Endian和Little-Endian,下面先从字节序说起。 ...

weixin_30646505的博客 157

数据在内存中的存储方式( Big Endian和Little Endian的区别 )(x86系列则采用little endian方式存储数据)【转】...

转自:http://www.cnblogs.com/renyuan/archive/2013/05/26/3099766.html 1.故事的起源 “endian”这个词出自《格列佛游记》。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开,由此曾发生过六次叛乱,其中一个皇帝送了命,另一个丢了王位。 我们一般将endian翻译成“字节序...

weixin_34162401的博客 553

【转】大端(Big-endian)和小端(Little-endian)区别

大端(Big-endian) 和小端(Little-endian) 区别      端模式(Endian )的这个词出自Jonathan Swift 书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为Big Endian ,从尖头开始将鸡蛋敲开的人被归为Littile Endian 。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endia

834

DICOM:Transfer Syntax传输语义之奇葩GE Private TS

背景:专栏之前对Transfer Syntax(暂定中文翻译为传输语义,8月初博客中提到的DICOM3.0标准中文版开源书籍计划顺利启动,后续会面临诸多专有名词的翻译工作,欢迎广大博友提意见)进行过多次的介绍,近期又在TransferSyntax章遇到了“坑”,因此本博文要介绍一下GE Private Transfer Syntax,CT Image Storage。

只要踏出一步,路就在前方——zssure 1万+

Shell脚本示例 Base64 字符集转换过程

读书做笔记,首先遇到下面这张表。下面这张表就不想手输了。本文讲述的就是用shell脚本生成下表的过程,顺便了解下字符集和Base64转换的原理。$j小林剣小林剣就是Ken Lunde,是我看的这本书的作者。运行示例。下面讲下脚本中的知识点。这一句是将输入转换为UTF-8的十六进制表示。为什么是UTF-8?因为我的环境就是设为UTF-8的。下面来看od命令。od的选项-An表示no address,因为我们不要显示文件偏移量。-t1指输出格式为1字节Hex,便于我们后续使用循环。需要说明的是。

In-Memory Computing Technology 1674

int和位数组互转

int和位数组互转

友善啊,朋友的博客 1048
上一篇: RED5只能使用NioProcessor-1线程进行处理问题
下一篇: 在Linux下怎么看网络流量
supermanwg
博客等级 码龄20年 29粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值