问题标签 [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 投票
8 回答
10996 浏览

c++ - 二进制补码形式

在 TC++ 编译器中,5的二进制表示是(00000000000000101)。我知道负数存储为 2 的补码,因此二进制中的-5(111111111111011)。最高有效位(符号位)是 1,表示它是负数。

那么编译器如何知道它是-5呢?如果我们将上面给出的二进制值(111111111111011)解释为无符号数,结果会完全不同吗?

另外,为什么 1 是5 -6 (1111111111111010)的补码?

0 投票
24 回答
452234 浏览

binary - 什么是“2的补码”?

我正在学习计算机系统课程,并且一直在努力学习Two's Complement。我想理解它,但我读过的所有内容并没有为我带来图片。我已经阅读了维基百科文章和其他各种文章,包括我的教科书

因此,我想开始这个社区 wiki帖子来定义什么是二进制补码,如何使用它以及它如何在强制转换(从有符号到无符号,反之亦然)、按位运算和位移运算等操作期间影响数字.

我希望的是一个清晰简洁的定义,程序员很容易理解。

0 投票
18 回答
110925 浏览

binary - 为什么更喜欢二进制补码而不是有符号数的符号和大小?

我只是想知道为什么为了用二进制表示-1而使用二进制补码是有原因的:翻转位并加1?

-1 由 11111111 (二进制补码)表示,而不是(对我来说更直观) 10000001 ,它是二进制 1,第一位为负标志。

免责声明:我的工作不依赖二进制算术!

0 投票
19 回答
158860 浏览

python - Python中的二进制补码

python中是否有一个内置函数可以将二进制字符串(例如'111111111111')转换为二进制补码整数-1?

0 投票
10 回答
17193 浏览

binary - 2的补码例子,为什么不进位?

我正在观看 David Malan(这里)关于二进制的一些精彩讲座。他谈到了有符号/无符号、1 的恭维和 2 的补码表示。有一个 4 + (-3) 的加法,排列如下:

但他挥舞着神奇的双手,扔掉了最后一个进位。我做了一些维基百科研究,有点不太明白,有人可以向我解释为什么那个特定的进位(在 8's -> 16's 列中)被丢弃了,但他保留了它之前的那个吗?

谢谢!

0 投票
7 回答
45872 浏览

java - 为什么字节 b = (byte) 0xFF 等于整数-1?

为什么byte b = (byte) 0xFF等于integer -1

前任:

它会打印-1吗?

0 投票
5 回答
1539 浏览

c - 如何证明 C 语句 -x、~x+1 和 ~(x-1) 产生相同的结果?

我想知道这句话背后的逻辑,证明。C 表达式 -x、~x+1 和 ~(x-1) 对于任何 x 都产生相同的结果。对于具体的例子,我可以证明这是正确的。我认为证明这一点的方法与二进制补码的性质有关。有任何想法吗?

0 投票
10 回答
53539 浏览

java - 按位非运算符

为什么按位运算(~0);打印 -1 ?在二进制中,不是 0 应该是 1 。为什么 ?

0 投票
5 回答
14798 浏览

c - C - 转换为 2s 补码

我决定这样做

  • 翻转数字 0=1, 1=0
  • LSB 加 1
  • 如果进位,则循环直到 array[i]==0

但我坚持最后一点;我怎么能在条件循环中这么说?

0 投票
6 回答
44929 浏览

c# - 将 2 个字节转换为数字

我有一个控件,其中包含一个字节数组。

不时有两个字节告诉我有关数组中未来项目数量的一些信息。

举个例子,我可以有:

这个值显然是 7。

但是这个呢?

知道这相当于什么(作为正常的 int)吗?

我转到二进制并认为它可能是 11100000000 等于 1792。但我不知道它是否真的是这样工作的(即它是否使用整个 8 个项目作为字节)。

有没有什么方法可以在没有测试的情况下知道这一点?

注意:我使用的是 C# 3.0 和 Visual Studio 2008