问题标签 [binary]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
441 浏览

.net - 搜索字节[]

.NET 非常支持在字符串中搜索字符串,但是当您需要搜索的数据不是字符串时该怎么办?

我有通过 NetworkStream 以常规块形式到达的二进制数据。数据包是二进制的,但它们都以字节的签名序列开头。我将这些块累积到一个更大的缓冲区中并寻找数据包开始签名。

我真正要找的是方法的byte[]等价物String.IndexOf(ss)。我有一种讨厌的感觉,我将不得不自己用一个循环和一个状态机来实现它。

有什么建议么?交给你了!


正如建议的那样, Array.IndexOf(byte) 至少会为我节省一个显式循环。自发布以来,我想到找到第一个签名字节,然后提前探测最后一个签名字节应该在哪里的匹配,然后如果它们都匹配,则尝试对字符串的其余部分进行蛮力比较。这种方法的优点是可以廉价地拒绝错误匹配,并允许我在有部分签名等待另一个块时廉价地拒绝。

谷歌透露,上述绝妙方案是“KMP”或Knuth-Morris-Pratt算法的退化案例。从好的方面来说,如果 Knuth 把他的名字写在上面,那可能是闪电般的润滑,从不好的方面来说,为什么每当我有一个好主意时,Donald Knuth 会在 25 年前想到它?

由于我不能将积分奖励给 Donald Knuth,我猜他们会去 Nelson。

0 投票
3 回答
26027 浏览

python - 如何在 Python 中解压缩二进制十六进制格式的数据?

使用 PHP pack()函数,我将字符串转换为二进制十六进制表示:

H* 格式表示“十六进制字符串,高半字节优先”。

要在 PHP 中解包,我只需使用带有 H* 格式标志的unpack()函数。

我将如何在 Python 中解压这些数据?

0 投票
1 回答
2042 浏览

sql - 我可以在 MS SQL Server 2005 中读取二进制字段

我尝试读取数据库中的二进制字段(Project Server 2007; dbo.MSP_CALENDAR)。MS 不会在 PSI 中实现任何功能。

大家有什么建议吗?

提前致谢

SPO

在 Database Piblished 中,在表 dbo.MSP_CALENDAR 中,我找到了一个名为 CAL_DATA 的字段,该字段是 BINARY。我尝试将此字段 CAST 或 CONVERT 转换为字符串或 DateTime....... Microsoft 使用此字段来保存资源个人日历,但我无法仅在 Microsoft Office Project Pro 2007 中检索数据。在早期版本中,日历在日期时间。现在使用新版本的 Project 2007 Ms 将信息放在 Binary 字段中。我试图找到任何解决方案来阅读此信息。

0 投票
3 回答
58648 浏览

matlab - 在 Matlab 中读取和写入二进制文件

我对matlab的了解只是在需要知道的基础上,所以这可能是一个基本的问题。然而它来了:

我有一个包含以二进制格式存储的数据(16 位整数)的文件。如何将它读入matlab中的向量/数组?如何将这些数据写入 matlab 中的文件?在读取/写入大量数据(千兆字节)时,是否有任何智能调整来提高性能速度?

0 投票
1 回答
810 浏览

java - Object(Output|Input)Stream二进制协议

我想知道是否有人有一些资源来描述ObjectOutputStream. 我当然意识到对象本身可以通过实现Externalizable接口来指定它们的数据,所以我想我更多地关注对象图的结构——如果你愿意的话,元数据。

我正在编写一个必须与遗留 Java 程序对话的 C 程序。我无法更改这些要求中的任何一个,因此我发现自己对ObjectOutputStream协议进行了逆向工程。(有一个服务器使用 HTTP 进行传输并返回 Object*Stream 作为 HTTP 响应。)

但是,我觉得那里的其他人必须以前做过这项工作。你能指出任何资源来加快我的工作吗?

0 投票
4 回答
703 浏览

binary - 建议阅读 BITS/Bytes 和示例代码以执行操作等

需要复习一下位/字节、十六进制表示法以及它与编程的关系(首选 C#)。

寻找一个好的阅读清单(最好是在线)。

0 投票
3 回答
2172 浏览

binary - 有什么方法可以减小 Sybase 数据库的转储文件大小?

当我转储一个 Sybase 数据库时,表中是否有数据似乎并不重要,文件大小是相同的。有人告诉我,这是因为我的转储文件是二进制而不是逻辑的,因此转储文件的文件基于数据库的分配大小。我知道 Oracle 可以使用逻辑转储文件,但我可以让 Sybase 做类似的事情,还是有任何其他偷偷摸摸的方法来减小转储文件的大小?

0 投票
3 回答
3854 浏览

c# - C# BinaryFormatter - 如何找出二进制数据的类?

我想反序列化一个对象,但不知道前面的类。所以,考虑下面的代码......

如果我不知道前面的课程,我该怎么办?比如说,例如“MyFile.bin”是一个 MyObject 或一个 MyFoo。如何确定要实例化哪个对象?

就像是...

0 投票
2 回答
1208 浏览

perl - 在 Perl 中向二进制字符串添加 1 的最简单方法是什么?

我有一个包含 4 字节网络顺序 IPv4 地址的变量(这是使用 pack 和整数表示创建的)。我有另一个变量,也是一个 4 字节的网络顺序子网。我正在尝试将它们添加在一起并添加一个以获得子网中的第一个 IP。

要获取 ASCII 表示,我可以inet_ntoa($ip&$netmask)获取基地址,但这样做是错误的inet_ntoa((($ip&$netmask)+1);我收到如下消息:

所以发生了什么,据我所知,最好的是它正在查看 4 个字节,发现 4 个字节不代表数字字符串,然后拒绝加 1。

另一种说法:我想要它做的是在最低有效字节上加 1,我知道这是第 4 个字节?也就是说,我想获取字符串\n\r&\0并以字符串结尾\n\r&\1。最简单的方法是什么?

有没有办法做到这一点而不必解包和重新打包变量?

0 投票
4 回答
8259 浏览

c# - 优化多维泛型数组的二进制序列化

我有一个需要二进制序列化的类。该类包含一个字段,如下所示:

这些多维数组可以相当大(数十万个元素)并且可以是任何原始类型。当我在一个对象上尝试标准的 .net 序列化时,写入磁盘的文件很大,我认为 .net 存储了大量有关元素类型的重复数据,并且可能没有达到可以做到的效率。

我四处寻找自定义序列化程序,但没有看到任何处理多维泛型数组的方法。在序列化成功后,我还在内存流的字节数组上尝试了内置 .net 压缩,但没有我希望的那么快/压缩。

我的问题是,我应该尝试编写一个自定义序列化程序来优化序列化这个数组以获得适当的类型(这似乎有点令人生畏),还是应该使用标准的 .net 序列化并添加压缩?

任何关于最佳方法的建议将不胜感激,或者链接到显示如何处理多维通用数组的序列化的资源 - 正如我发现的现有示例所提到的那样,我发现不支持这种结构。