endianness相关内容

整数的htonl()和ntohl()的输出相同

我在低字节序[LE]机器[Linux,Intel处理器]上运行了以下程序。我无法在下面的代码片段中解释这3个输出。由于计算机是LE,因此 a 的值存储为 0x78563412 。打印时,它将显示其实际值。由于它是LE机器,所以我希望 ntohl()是无操作并显示 0x78563412 在做。但是,我希望包含 htonl()的第二个打印语句的 0x12345678 。 int main() ..
发布时间:2020-10-29 18:31:02 其他开发

大字节序和小字节序之间的区别

Big Endian和Little Endian字节顺序有什么区别? 这两个似乎都与Unicode和UTF16有关。 解决方案 Big-Endian(BE)/ Little-Endian(LE)是两种组织方式多字节字。例如,当使用两个字节表示UTF-16中的字符时,有两种方法将字符 0x1234 表示为字节字符串(0x00-0xFF): 字节索引:0 1 --------- ..
发布时间:2020-10-29 18:30:54 其他开发

小尾数vs大尾数?

我在将两者缠绕在一起时遇到麻烦。我知道如何用大尾数表示。 例如-12是1111 1111 1111 0100 为什么小尾数表示为1111 0100 1111 1111而不是0100 1111 1111 1111? 解决方案 尾数大约是字节地址订购。小尾数表示低有效字节获得低地址。大尾数法则相反。因此,关于字节(8位块)而不是半字节(4位块)。我们使用的大多数计算机(有一些例外) ..
发布时间:2020-10-29 18:30:51 其他开发

小尾数字节顺序(iOS,BLE扫描响应)

基本而言,我正在将nativescript用于跨平台应用程序。该应用程序与BLE设备进行交互。 BLE设备在广告包之后发送扫描响应,我可以在iOS端将其作为NSData对象进行检索。 这是来自的(伪)输出description属性:。 输出代表外围设备的硬件地址。 硬件人员告诉我,这几乎没有-endian,我知道它是一个48位字符串。 我已经 ..
发布时间:2020-10-29 06:45:25 移动开发

通过联合和位移来读取平台字节序的两倍,这安全吗?

我所见过的从缓冲区读取已知字节数到平台字节数的所有示例都涉及检测当前平台的字节数,并在必要时执行字节交换。 另一方面,除了使用位移位的整数(一个这样的示例)。 这使我想到可能可以使用联合和位移位技术从缓冲区读取双精度(和浮点型),并进行快速测试实现似乎起作用(至少在x86_64上使用clang起作用): #include #include ..
发布时间:2020-10-19 19:50:50 其他开发

BigEndianStructure中的字符串

我想做这样的事情: from ctypes import * class Packet( BigEndianStructure): _fields_ = [(“ length”,c_ushort), (“ session”,c_uint), (“ command”,c_ushort)] class PacketString(BigEndianStructure): _f ..
发布时间:2020-10-12 23:40:58 Python

CPU寄存器中的字节序

我需要帮助来了解x86处理器的CPU寄存器内部的字节序。我写了这个小型汇编程序: section .data section .bss section .text global _start _start: nop mov eax,0x78FF5ABC mov ebx,'WXYZ' nop; GDB断点在这里。 mov eax,1 mov ebx,0 ..
发布时间:2020-10-11 00:20:17 其他开发

如何重新排序整数的字节?

我的任务是将数据文件从大端转换为小端&反之亦然。使用C。相反,我已经在网上寻找了大约3个小时的其他示例并阅读了我的教科书,但是,我对如何启动此功能一无所知。 到目前为止,我的事件顺序是正确的(1到4),但是在我的 convert_and_save 函数内部,我必须使用→创建一个char数组。 char buffer [4]; ? 有人可以帮助我吗?即使您只是提供有关查找内容的线索,我也 ..
发布时间:2020-10-09 02:19:55 其他开发

字节序,“最重要”和“最不重要”

我在线阅读了有关大小尾数的说明。但是,它们似乎基本上都以相同的方式读取,并且我仍然对“最大”和“最小”有效字节的实际实现感到困惑。我知道小字节序值首先评估“最低有效”值,而在字节序大时,首先评估“最高有效”字节。但是,我不清楚“最重要”和“最不重要”的含义。我认为这将有助于我理解是否使用我将在此处提出的实际示例: 我有一个整数:12345 如果使用Windows计算器将其转换为十六进制 ..
发布时间:2020-10-07 18:39:53 其他开发

为什么同时使用小端和大端?

在经过大约40年的二进制计算机科学学习后,为什么今天的低端字节序和大端字节序仍在使用?是否有一种算法或存储格式可以更好地使用一种方法,而另一种方法则更糟糕? 解决方案 在将两个数字相加时(在纸上或在机器中),则从最低有效数字开始,然后朝最高有效数字迈进。 (许多其他操作也一样)。 在Intel 8088上,该寄存器具有16位寄存器但有8位数据总线,由于其低位字节序允许在第一个存储周期 ..
发布时间:2020-10-07 18:33:10 其他开发

字节序-为什么将char放回Int16打印?

以下在XCode中编译并运行的C代码: UInt16 chars ='ab'; printf(“ \nchars:%2.2s”,(char *)& chars); 打印'ba',而不是'ab'。 为什么? 解决方案 该特定实现似乎以Little-endian格式存储多字符常量。在常量'ab'中,字符'b'是最低有效字节(末尾),而字符'a'是最高有效 ..
发布时间:2020-09-30 22:54:41 其他开发

字节序与堆栈增长方向之间的关系

处理器的字节序与堆栈增长的方向之间是否存在关系? 例如, x86体系结构是小尾数,堆栈向下增长(即,每次执行 push 操作时,堆栈都从最高地址开始向较低地址增长)。同样,在 big endian 的 SPARC体系结构中,堆栈从最低地址开始,然后向上扩展到更高的地址。 几乎在所有体系结构中都可以看到这种关系模式。 我相信这种未提及的约定一定有原因。可以从计算机体系结构或OS的角度来解 ..
发布时间:2020-09-29 00:51:38 其他开发

C ++ 14中二进制文字的字节顺序是什么?

我尝试四处搜索,但找不到太多有关二进制文字和字节序的信息。二进制文字是小尾数,大尾数还是其他东西(例如匹配目标平台)? 例如, 0b0111 ?是7吗?平台特定?还有吗编辑:我选择了一个错误的值7,因为它在一个字节内表示。 某些背景:基本上我想弄清楚最低有效位的值是什么,并用它掩盖二进制字面量似乎是一个不错的选择...但是只有在有关字节序的某些保证下。 解决方案 简短答案: 没 ..
发布时间:2020-09-28 01:13:09 C/C++开发

有没有一种方法可以对C或C ++结构强制执行特定的字节序?

我已经看到了有关结构的字节序的一些问题和答案,但是它们是关于检测系统的字节序或在两个不同字节序之间转换数据。 但是,如果要强制执行给定结构的特定字节序,我现在想要的是。除了用很多在位域上操作的宏重写整个内容之外,还有一些好的编译器指令或其他简单的解决方案吗? 一般的解决方案会很好,但是我会 编辑: 谢谢。您需要提供所有注释,指出为什么执行字节序不是一个好主意,但就我而言,这 ..
发布时间:2020-09-27 02:19:37 C/C++开发

如何在C ++中从字节数组(在BIG-ENDIAN中)提取单个字段

我正试图从 byteData 中读取几个字节,如下文C ++代码所述。 byteData 中的实际值是BIG-ENDIAN字节顺序格式的二进制Blob字节数组。因此,我不能只是将字节数组“投射”为字符串。. byteData 字节数组由以下组成这三件事- 第一个是`schemaId`,它是两个字节(Java中的短数据类型) 第二个是lastModifiedDate是八个字节(Java中 ..
发布时间:2020-09-25 05:43:39 C/C++开发