问题标签 [ones-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.
binary - 了解补语
我只是有一个关于二进制数补码的快速问题,也许有人可以帮助我理解。
我正在学习计算机安全测试,我正在练习将十进制数转换为二进制数,然后使用一个和两个补码。我得到十进制数 237 并将其转换为二进制 11101101。我知道在一个补码中你颠倒了这些位,这很简单。当我反转它时,我得到 00010010 但答案省略了前三个 0。有人可以向我解释为什么会这样吗?
c - (size_t)-1 和 ~0 有什么区别?
我见过这两种情况(size_t)-1
,并且~0
习惯于表示大数,或所有位都翻转的数字。
两者有什么区别吗?如果是这样,它是什么?
我发现了这个问题:What is the difference between -1 and ~0,但是它没有回答我的问题,因为我正在处理无符号整数(例如size_t
),而不是有符号整数(例如int
)。
binary - 二进制补码的左移操作
我正在研究按位运算和有符号数字表示。我已经认识到,如果我们在补码模式上进行左移。它没有正确地乘以原始数字。
例如(一个补码):
-26 左移 1 位给出 -53(不是 -52),-11 左移 2 位给出 -47(不是 -44)。这就是人们选择二进制补码进行精确数字运算的原因。我在谷歌上搜索过,但没有提到左移和补码的帖子。几乎提到了带补码的左移
c - 如何证明两个和为零的整数具有位互补的补码表示?
我一直在这个问题上停留了一段时间:
从数学上证明两个和为零的整数具有位互补的补码表示。
c - 这学期刚开始学C,但我似乎无法理解教授在这个问题上对我们的要求
原始问题:
正数在一个补码和二进制补码中具有相同的表示。假设它的表示被解释为二进制补码,并且它的加法逆是确定的。现在这个表示被解释为一个的补码,并且确定了加法逆。无论解释为一个补码还是二进制补码,结果都是一样的,因为它是一个正数。这个结果和原来的数字有什么关系?
我不知道他所说的“这个结果和原来的数字有什么关系”是什么意思。我想我理解他要我们做什么的过程:
首先取二进制(0101),然后取二进制补码(1011),然后取二进制补码(0100)的补码。接下来是什么?
c++ - 在 C++ 中测试 1s 补码 CPU 的最佳方法是什么?
我正在做一些只适用于 2s 补码 CPU 的小玩意。我想在代码中添加一个 static_assert,以防万一。(Wikipedia Ones 的补码页面说只有一些 Univac 机器仍然使用 1s 补码,但我想偏执一下。)这段代码是防弹的、符合标准的、合理的吗?
我无法使用 1s-complement 机器。有没有人愿意测试这个?
c - Unisys 最新的大型机系统是否仍然使用反码表示?
从 Wikipedia 文章看来,有符号整数的补码表示大多已过时,但他们提到了一些 Unisys 系统,即UNIVAC 1100/2200 系列仍然支持这种表示。
Unisys Clearpath 系列中的最新系统是否仍然支持和使用一个补充?
既然他们使用英特尔芯片,他们需要模拟器吗?这性能如何?
是否有针对此架构的 C 编译器?
twos-complement - 在 One's Complement 和 Two's Complement 中分配给 0xFFFFFFFF 的值
这是一个简短的问题,我只是想澄清一些事情。
一二的补码中分配给 0xFFFFFFFF 的值是多少?
我认为 0xFFFFFFFF 是二进制补码是-1。但是,当我使用在线二进制补码计算器时,我得到的值为 1。
另外,我想检查一个补码中 0xFFFFFFFF 的值是否为 0。
python - 与 1 的补码二进制表示混淆
我试图学习负数的二进制表示。我试图以二进制输出 12 和 ~12 。
输出:
这是 12 的 1 的补码。
但我怀疑二进制12是1100,-13(12的1的补码)是0011,但3也是二进制的0011。这让我很困惑。
-13 和 3 如何具有相同的二进制值?