gpt4 book ai didi

ruby - 在 Ruby 中读取二进制 16 位有符号(大端)整数

转载 作者:数据小太阳 更新时间:2023-10-29 07:43:34 24 4
gpt4 key购买 nike

我试图从一个文件中读取数字以大端格式存储为 16 位有符号整数。

我用unpack读入了数字,但是big-endian格式的16位有符号整数没有参数,只有无符号整数。这是我目前所拥有的:

number = f.read(2).unpack('s')[0]

有没有办法将上面的数字解释为带符号的整数或其他方式来实现我想要的?

最佳答案

我不知道是否可以为此使用 String#unpack,但是要将 16 位无符号转换为有符号,您可以使用 classical method :

>> value = 65534
>> (value & ~(1 << 15)) - (value & (1 << 15))
=> -2

关于ruby - 在 Ruby 中读取二进制 16 位有符号(大端)整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4886994/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com