问题标签 [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 回答
1760 浏览

binary - 1 和 2 的补码系统

我试图了解这两个系统之间的差异以及它们对 C 编程的影响。

根据我从 Wikipedia 中了解到的信息:

  1. 两个系统都用于表示负数
  2. 一个补码按位不应用于负数(系统有 +0 和 -0)
  3. 二进制补码与第 2 步一样并加 1(消除 +/-0)

我还缺少其他东西吗?

我的问题:

  1. 哪些架构支持哪些系统?现在最常见的是什么(1 或 2 的补码)?
  2. 在用 C 编程时,我们应该在什么意义上考虑这些系统?它主要只在嵌入式世界中有意义吗?

提前致谢!

0 投票
1 回答
380 浏览

assembly - 这两种情况下的偏移量将如何应用?

首先,我熟悉二进制补码系统如何表示负数的概念,并且我知道当有跳转指令(短或接近)时,它包含的偏移量将始终添加到 EIP 寄存器中并且没有从 EIP 寄存器中减去偏移量的情况(如果我是对的!)。但我想知道在以下两种带有负偏移量的寻址的情况下,它是否与如何使用跳转指令中的偏移量的情况相同,该偏移量总是被添加到基数而不是任何减去案子?

(以 GASM 格式):
“base_address(offset,index register,scale)”,例如:

“偏移量(基址寄存器)”如:

将二进制数添加到 eax 寄存器还是减去?

0 投票
2 回答
1006 浏览

twos-complement - 补码减法

-5-8 我们必须用 2 的补码形式表示两个整数然后相加吗?

0 投票
1 回答
1570 浏览

assembly - 多余-N 到 2 的补码

有人可以解释一下如何做到这一点吗?这不是家庭作业。

有人可以向我解释如何做到这一点吗?

首先,如何将多余 N 数的求和公式转换为 2 的补数公式?其次,我究竟应该如何证明这一点?

0 投票
1 回答
56 浏览

numbers - 我什么时候会使用二、一或只是签名?

如果我想要二进制的-3,我可以使用有符号位,或者一个补码,或者二进制补码,对吗?
但是,什么时候适合使用方法呢?为什么?

让我们只使用 8 位:

-3签名只是10000011

-3与那些只是11111100

-3有两个只是11111101

0 投票
1 回答
2218 浏览

binary - 如何正确填充二进制数(带和不带基数)

所以我有一个关于用 0 填充的快速问题。我做的例子如下,只是假设长度无关紧要并且没有符号位。

我知道在前面填充二进制数的整数部分很好(尽管有缓冲区和类似的东西)。当我处理小数点时,我永远不记得它是如何工作的。你是在基数(b)旁边还是在数字(c)的末尾填充。另外,像这样的填充会影响这些数字的补码吗?

谢谢

编辑: 我问这个的原因是因为我正在从二进制转换为十六进制,将二进制转换为八进制。为此,我必须将位分组为 4 或 3 组。我没有足够的位,所以我需要在某处添加零。

0 投票
2 回答
1044 浏览

twos-complement - 2 的补码问题

我有与 2 的补码相关的 aq。假设我在 2 的补码表示中有一个带符号的 16 位十六进制,例如,取 0xfaa

如果它是 16 位,我需要扩展它,因为它现在只有 12 位。我知道我必须扩大左侧,所以它会被做成0xffaa。

这意味着我的数字是负数,对吗?

0 投票
1 回答
8754 浏览

java - 如何将负整数转换为二进制补码形式?(爪哇)

我需要将数字(正数和负数)转换为二进制格式 - 例如,将 2 转换为“00000010”,将 -2 转换为“11111110”。我不需要超过 12 位左右,所以如果字符串比那个长,我可以剪掉前导符号位。似乎Integer.toBinaryString()会做正数,但有没有可以做负数的?

0 投票
4 回答
314 浏览

c - 按位补码

我有一个 , , 的示例问题,解决w=1方案是,但我不知道为什么?y=7z=0x = ~(w && y) | y;x = -1

这是我的思考过程:
(w && y) = (1 && 7) = 1
~1
1 in bits is 0000 0001
~1 in bits is1111 1110

不知道从这里做什么。

0 投票
3 回答
3404 浏览

c - 无符号字符旋转

我对 unsigned char 是什么感到有点困惑。有符号的字符是位形式的字符的表示,对吗?一个示例问题让我们向右旋转 n 位位置,使用此解决方案的无符号字符的位:

如果有人可以用 char 示例及其各自的位进行解释,将不胜感激。非常感谢。