问题标签 [twos-complement]

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 投票
2 回答
172 浏览

floating-point - 为什么没有比符号和幅度更好的浮点表示?

我们有整数的 2 的补码,它允许我们执行操作而不用担心符号。这在实施层面有很大帮助。

同样,我们有很多浮点运算,但我们依赖于符号和幅度。是什么原因?

为什么像系统这样的 2 的补码不能用于浮点数?

0 投票
6 回答
18847 浏览

algorithm - 如何在将两个 2 的补码整数相乘时检测溢出?

我想将两个数字相乘,并检测是否有溢出。最简单的方法是什么?

0 投票
1 回答
2698 浏览

range - 有符号的十六进制值范围

假设我有一个用二进制补码签名的 6 位十六进制数。它的范围是多少?

-(16 ^ 5) < x < (16 ^ 5)

正确的?

0 投票
5 回答
3190 浏览

c - 带符号的十六进制字符串到 long int 函数

我需要一个函数将 32 位或 24 位有符号(二进制补码)十六进制字符串转换为长整数。需要在 32 位和 64 位机器上工作(不管 long int 的大小)并且无论机器是否是二进制补码机器都可以工作。

解决方案:

0 投票
4 回答
1484 浏览

objective-c - 使用 ieee-754 或二进制补码将 NSData 转换为原始变量?

我是Obj-Ccocoa的新程序员。我正在尝试编写一个用于读取二进制文件的框架(灵活的图像传输系统FITS二进制文件,通常由天文学家使用)。我有兴趣提取的二进制数据可以有多种格式,我通过读取FITS文件的标题来获取其属性。

到目前为止,我设法创建了一个类来存储FITS文件的内容,并将标头隔离到一个NSString对象中,并将二进制数据隔离到一个NSData对象中。我还设法编写了一种方法,该方法允许我从标题中提取对解释二进制数据非常有价值的键值。

我现在正在尝试将NSData对象转换为原始数组(数组doubleint... short)。但是,在这里,我被卡住了,希望能得到任何帮助。

根据我拥有的关于FITS文件的文档,我有 5 种可能性来根据BITPIX键的值来解释二进制数据:

我已经编写了如下所示的代码,以尝试将其转换NSData为原始数组。

但是,我在循环中打印的值与预期值有很大不同(使用官方 FITS 软件比较)。因此,我认为Obj-C double不使用IEEE-754约定以及Obj-C int不是二元补码。我真的不熟悉这两个约定(IEEEtwos-complement),并且想知道如何使用Obj-C进行这种转换。

提前非常感谢您提供的任何帮助或信息。

0 投票
5 回答
254 浏览

integer - 为什么偏向负数?

如果在我的编译器上,int 是 16 位,那么它的范围是 -32768 到 32767(在 2 的补码机器中)。
我想知道为什么负数有1个额外的号码。即正数转到32767,但负数转到另外一个即32768。

-32768 如何在 2 的补码 m/c 上表示?

0 投票
2 回答
3035 浏览

c++ - 连接 16 位有符号整数的 MSB 和 LSB(二进制补码)

我正在使用一种专有协议,该协议将整数作为 16 位二进制补码分两部分传输。首先发送 LSB,然后发送 MSB。以下代码恢复原始值是否正确?

0 投票
6 回答
14822 浏览

python - python - 如何使用python在二进制补码中将有符号整数打印为十六进制数?

我有一个负整数(4 个字节),我想要它的二进制补码表示的十六进制形式。

但我想看“FF……”

0 投票
10 回答
35567 浏览

c# - 二进制补码转换

我需要将二进制补码格式的字节转换为正整数字节。范围 -128 到 127 映射到 0 到 255。

编辑为了消除混淆,输入字节(当然)是0到255范围内的无符号整数。但它使用二进制补码格式表示-128到127范围内的有符号整数。例如,输入字节值 128(二进制 10000000)实际上表示 -128。

额外编辑好吧,假设我们有以下字节流 0,255,254,1,127。在二进制补码格式中,这表示 0、-1、-2、1、127。我需要将其限制在 0 到 255 的范围内。有关更多信息,请查看这篇很难找到的文章:补码

0 投票
5 回答
806 浏览

c - 如何检测C中带符号整数的编码?

ISO C 标准允许有符号整数的三种编码方法:二进制补码、二进制补码和符号/大小。

在运行时(或者如果有更好的解决方案,在其他时间)检测编码的有效或好的方法是什么?我想知道这一点,这样我就可以针对不同的可能性优化一个 bignum 库。

我计划在每次程序运行时计算它并将其存储在一个变量中,这样它就不必非常快 - 我假设编码在程序运行期间不会改变:-)