问题标签 [unpack]
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.
perl - 如何在 64 位 Perl 中解压缩(64 位)无符号长整数?
我正在尝试解压缩通过 SysV::IPC 从 C 程序传递到 Perl 脚本的无符号长值。
已知该值是正确的(我做了一个测试,将相同的值发送到两个队列中,一个由 Perl 读取,第二个由 C 应用程序读取),并且所有前面的值都被正确读取(使用q
而不是i!
使用 64位整数)。
还知道 PHP 在 bug 中有类似的东西(搜索“unsigned long on 64 bit machines”)(似乎类似: Pack / unpack a 64-bit int on 64-bit architecture in PHP)
到目前为止测试的参数:
- ..Q(=某个大于预期的值)
- ..L (= 0)
- ..L!(=大值)
- ..l (= 0)
- ..l!(=大值)
- ..lN!( = 0)
- ..N,..N!( = 0)
use bigint; use bignum;
- 没有效果。
细节:
sizeof(unsigned long)
= 8;Data::Dumper->new([$thatstring])->Useqq(1)->Dump();
很多空字节沿着一些有意义的..- 字节序='12345678';
解决方案: -x4Q
填充四个字节。
javascript - node.js 的打包/解包功能
是否有任何模块为 nodejs 提供类似于 python 的 struct 模块的打包/解包功能?我还没有找到任何专门用于节点的东西,我认为 javascript 的实现会慢得多。
谢谢。
python - 如何使用 struct.unpack 并将其转换为 Objective-c 中的值
Python 中的代码
struct.unpack("< I",data.read(4))[0] # 解压成 int.
从文件中读取数据,然后使用read,我的问题是我们如何在Objective-c中使用,读取和struct.unpack
我有 NSFileHandle 格式的数据,我可以逐字节读取,所以现在读取不是问题。问题是将我得到的 NSData 转换为(int、short、float、string)。
perl - 你能解释一下我从 unpack 中得到的信息吗?
我对 Perl 相对缺乏经验,但我的问题涉及在获取数值位时的解包函数。例如:
这将导致打印 10001100,即十进制的 140。在相反的顺序中,它是十进制的 49。我尝试过的任何其他值似乎都给出了不正确的位。
但是,当我通过 pack 运行 $bits 时,它再次产生 1。我在这里缺少什么吗?
当我认为我的问题已经解决时,我似乎得出了结论。也许我应该简要解释一下我正在尝试做什么。
我需要将一个可能长达 24 位(关键是它可能大于一个字节)的整数值转换为位串。这可以使用@ikegami 建议的解包和打包来完成,但我还需要找到一种方法将该位字符串转换回它的原始整数(不是它的字符串表示形式)。
正如我所提到的,我对 Perl 相对缺乏经验,而且我一直在尝试但没有成功。
我发现似乎是最佳解决方案:
ruby - 使用 Ruby 从二进制字符串中解包一点
我String::unpack
用来从二进制流中解压缩一堆整数和加倍。如何从该比特流中解压缩单个比特?我找不到使用 unpack 解码单个位的特定指令。
maven-2 - Maven2解包只包含内部文件
我有 maven unpack 的下一个神器项目
我只需要从 xsd 复制文件和子文件夹,而不是 xsd 文件夹。我如何使用包含/排除来做到这一点?
php - PHP - 读取 8 位整数
我有一个所有 8 位整数的二进制文件。我曾尝试使用 php unpack() 函数,但我无法让任何参数适用于 1 字节整数。我试图将数据与一个虚拟字节结合起来,以便我可以使用“n”/“v”参数。我正在使用 Windows 机器来执行此操作。最终,我想要一个函数来返回一个基于 8 位二进制整数字符串的整数数组。我尝试过的代码如下 -
python - python结构解压
我正在尝试转换以下 perl 代码:
对于 python,但是 struct.unpack() 中缺少“*”格式修饰符似乎使这不可能。有没有办法在python中做到这一点?
PS perldoc 中 perl 中的“*”修饰符 - 为重复计数提供 * 而不是数字意味着使用剩余的项目,...
因此,虽然 python 有像 perl 这样的数字重复计数,但它似乎缺少 * 重复计数。
php - 如何找到 pack() -ed 二进制数据的格式并将其解压缩
我在 Mysql 字段中存储了二进制数据,如下所示:0x31
和0x31303030303332
. 这是从字符串转换为二进制数据的,我不知道那个字符串,也不知道字符串是如何转换为这个二进制数据的。据我所知pack()
和unpack()
PHP 函数可以帮助我,但我无法将此二进制数据转换回字符串,因为我不知道unpack()
使用了什么格式(函数的第二个参数)。如何找到正确的格式来添加unpack('format', $mybinarystring)
功能?或者这可以通过另一个函数或方法转换回来?
linux - 自定义Tomcat中解压WAR的权限
我似乎在这里找不到这个,但它似乎有点典型。我在 RHEL5 上运行 Tomcat 6
我希望 Tomcat 使用 774 权限而不是默认使用的 754 权限来解压我的 WAR。有没有办法指定这个?我查看了 catalina.policy,但没有看到与此相关的任何内容。