endianness相关内容

在VBA中将big-endian转换为little-endian,反之亦然

我的机器是低位字节序(Intel字节顺序).我需要读取一个以Motorola/IEEE字节顺序("big-endian")包含16位带符号整数数据的二进制文件,然后进行一些计算,最后将生成的integer数据写入big-endian二进制文件中. 我如何在VBA中执行上述操作,即将大端转换为小端,反之亦然? 原因是,我正在处理NASA 航天飞机雷达地形任务数据( HGT文件格式). ..
发布时间:2020-10-31 21:08:23 其他开发

C Endian是中立的吗?

C是字节序中性的吗? 好​​的,问这个问题的另一种方法。 我目前正在同一平台(PC)上将很多代码从C转换为Matlab。我需要关心耐力吗? 都是与字节序无关的语言,但是C(不太确定),Matlab(很确定)。 同样,我也在将C转换为Python。 因此,我的问题是,从他的经验来看,是否有人(从C转换为另一种与字节序无关的语言)遇到了一个大/小字节序的意外问题。 显然,我们只是在谈论核心 ..
发布时间:2020-10-29 18:44:47 其他开发

在x86汇编语言中使用little-endian标记有什么好处?

可能重复: 为什么x86是little endian? 我个人是这样,并且我敢打赌,很多人都会同意这一点,发现big-endian字节顺序表示法更易于阅读和理解。我想大尾数字节排序对于CPU来说就像小尾数字节排序一样容易。 在文章 x86的黑暗角落,大卫·奇斯纳尔(David Chisnall)指出 “ [...]当时似乎是个好主意的功能已逐渐添加,直到我们被称为现代x86 ..
发布时间:2020-10-29 18:44:41 其他开发

从Java程序向运行C的设备发送字节流

我正在使用支持小尾数字节顺序的设备。 我已经从十六进制数据创建了字节流,并将其写入套接字输出流。我应该以以下格式发送数据。 协议版本:0x0001 Request_Code:0x0011 Request_Size:0x00000008 String s =“ 0001001100000008”; byte [] bytes = hexStringToByteAr ..
发布时间:2020-10-29 18:44:33 Java开发

在Paraview等可视化软件中读取VTK文件时,它们的尾部顺序是否独立?

我正在处理一个字节序与我的桌面不同的文件,我需要对其进行转换,但是当我可视化vtk时,它可以工作。因此,vtk文件的vtkreader与Endian无关 解决方案 ParaView可以读取使用大端或小端字节顺序写的VTK文件,并且将尝试找出写入给定文件时使用的格式。来自 VTK文件格式文档: 二进制文件。 只要您遵守两个条件,VTK中的二进制文件就可以在不同的计算机系统上移植。 ..
发布时间:2020-10-29 18:44:32 其他开发

浮点数的字节序

我正在使用 std :: fstream std :: ios :: binary ) $ c>-包括整数和浮点值。虽然我的代码可以在自己的体系结构上运行,但我无法确保它是可移植的,也就是说,仍然可以从具有不同字节序的计算机上正确读取在我的计算机上写入的二进制文件。所以我的想法是,我将在二进制文件的第一个字节中添加一个值,该值将指示文件的字节序。 由于不能保证,整数和浮点数相同,我需要分别获 ..
发布时间:2020-10-29 18:43:28 C/C++开发

Ruby如何将32位整数转换为网络字节顺序?

可能重复: 如何将32位整数转换为网络字节顺序? 我已经问过“ 如何将32位整数转换为网络字节顺序?”,但我还是不明白这个概念。 我需要写出长度 例如,如果以字节为单位的数据大小为1024,则需要在Ruby中将其表示为网络字节顺序。 根据我先前问题的答案将是: [1,0,2,4] .pack(“ NNNN”) 但是当我尝试 [10,2 ..
发布时间:2020-10-29 18:42:20 其他开发

如何使GDB识别双向代码?

当尝试调试使用Intel Bi-Endian编译器编译的代码时,我无法查看数据。 这似乎是我的数据被标记为大端字节。 我要查看的数据是 __ be_x ,其中 x 是 int 。 尝试打印 x 当它的值是1时,我得到了这个值,可能是因为这个值被插入为小端而不是大端: (gdb)p __be_x $ 4 = 16777216 (gdb)x / 4b 0xf850aa0 ..
发布时间:2020-10-29 18:42:07 其他开发

char16_t和char32_t字节序

在C11中,对可移植宽字符类型 char16_t 和 char32_t 的支持为添加了分别用于UTF-16和UTF-32。 但是,在技术报告中,没有提到这两种类型的字节序。 例如,以下 -std = c11 编译的x86_64计算机上的code> gcc-4.8.4 : #include #include char16_t u ..
发布时间:2020-10-29 18:41:59 其他开发

是否需要转换字符串的字节顺序?

在发送和接收字符串时是否需要转换为网络/主机字节顺序。可用函数(例如htons())仅适用于16位和32位整数。我也知道一个字符不起作用,因为通常这是一个字节大。但是字符串呢? 以下是代码段 int len; recv(fd,& len,sizeof(int),0); len = ntohl(len); char *字符串= malloc(sizeof(char)*(le ..
发布时间:2020-10-29 18:41:58 其他开发

签名整数的字节序转换

我正在通过UDP接收大字节序数据,并将其转换为小字节序。消息人士说,整数是带符号的,但是当我交换带符号的整数(特别是16位)的字节时,我得到的值不切实际。当我将它们交换为无符号整数时,我得到了期望的结果。我认为源文档可能不正确,并且实际上正在发送未签名的16位整数。但是那为什么重要呢?这些值都应该是正数,并且在16位INT_MAX下很好,所以溢出应该不是问题。我唯一能想到的是(1)文档错误并且(2 ..
发布时间:2020-10-29 18:40:54 其他开发

在小尾数法和大尾数法之间有效转换

我有一个可以运行的软件,当前可以在 little-endian 架构上运行。我也想使其在 big-endian 模式下运行。我想将 little-endian 数据写入文件中,而不管底层系统的字节顺序如何。 To为实现这一目标,我决定使用boost endian库。它可以有效地转换整数。 它在文档,“ Boost 1.59.0将支持浮点类型 ”。但是 1.62 仍不支持它们。 我 ..
发布时间:2020-10-29 18:40:50 C/C++开发

std :: wstring的标准定义字节序是什么?

我知道UTF-16有两种字节序:大字节序和小字节序。 C ++标准是否定义了std :: wstring的字节序?还是它是实现定义的? 如果是标准定义的,那么C ++标准的哪一页提供了有关此问题的规则? 如果它是实现定义的,如何确定?例如在VC ++下。 我必须知道这一点;编译器是否保证std :: wstring的字节序严格取决于处理器?因为我想将UTF-16字符串发送给 ..
发布时间:2020-10-29 18:39:47 C/C++开发

小尾数法中的ntohl()vs htonl()

请澄清我的疑问,因为我对以下内容感到非常困惑,并且在网上的其他任何地方都无法获得 干净的答案。 #include int main() { int a = 0x44332211; printf(“ Network-0x%x\n”,htonl(a)); //主机到网络 printf(“ Host-0x%x\n”,ntohl(a)) ; //托管 的网络返回0 ..
发布时间:2020-10-29 18:38:40 其他开发

如何将ByteString转换为Int并处理字节序?

我需要在Haskell中读取二进制格式。格式非常简单:四个八位位组指示数据的长度,然后是数据。四个字节代表网络字节顺序中的整数。 如何将四个字节的 ByteString 转换为一个整数?我想要直接转换(在C中为 *(int *)& data ),而不是字典转换。另外,我将如何进行字节排序? 我尝试了Googling,但是有关词典转换的结果只有黄色。 p> 解决方案 二进制 ..
发布时间:2020-10-29 18:38:39 其他开发