问题标签 [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.
twos-complement - 使用加法、减法和左移翻转二进制补码数的符号
在一项家庭作业中,其中一个问题要求我们将任意整数乘以一个常数,仅使用 +、- 和 << 运算符以及最多三个操作。例如,第一个常数是 17,我将其求解为
但是,给出的一些常数是负数(例如 -7)。乘以 7 是一件相对微不足道的事情(我将其设为(x << 3) - x
),但我无法弄清楚如何仅使用三个允许的运算符来翻转标志。
我试图通过在每个结果中添加或减去 2147483648 来翻转该位(认为这将强制使用最高有效位,从而翻转符号),但在我的 C# 测试实现中,这已被证明是不成功的。
是否有一些正数可以乘以在功能上类似于-7的给定int?添加 2147483648 可以在 C# 以外的语言中使用吗?我忽略了什么吗?
书中的原始问题如下:
假设我们的任务是生成代码以将整数变量 x 乘以各种不同的常数因子 K。为了提高效率,我们只想使用操作 +、- 和 <<。对于以下 K 值,编写 C 表达式以执行乘法运算,每个表达式最多使用三个操作。
A.K = 17
B. K = -7
C.K = 60
D.K = -112
binary - 找出 4 位的位模式#
一个。填写以下 4 位数字的位模式。如果一个数字有多个位模式,请将它们全部写入。如果不存在位模式,请在框中填写“N/A”。
无符号、符号/大小、一个补码、二进制补码
对于 0,7,-1, 15 和 8。
我找出了 0、-1 和 15 的值。
我需要 7 和 8 的帮助。
binary - 二进制补码解释
二进制补码如何工作?例如:
如何判断后者应该是 251 还是 -5?
c - 仅使用位运算符以二进制执行算术运算
可能重复:
如何仅使用位移和加法进行乘法和除法?
我必须编写函数来执行二进制减法、乘法和除法,而不使用除循环控制之外的任何算术运算符。我以前只用 Java 编写过代码,所以我很难理解这一点。
从减法开始,我需要用原型写一个函数
我知道我需要将 y 转换为二进制补码才能使其为负并将其添加到 x,但我只知道如何通过使用补码 ~ 运算符并加 1 来做到这一点,但我不能使用 + 运算符。
提供了 badd 函数,如果我能弄清楚如何使 ya 为负数,我将能够在 bsub 中实现它。badd 的代码如下所示。提前感谢您的任何提示。
binary - 2 对使用逻辑门的有符号二进制转换器的补码?
我需要使用门电路为有符号二进制转换器创建一个 2 的补码。我可以使用哪些逻辑门?
c - 如果 b=5,为什么 ~b=-6?
我无法让 2-complement 计算工作。
我知道 C 编译 ~b 如果 b = 5,它会将所有位反转为 -6。但为什么?
int b=101,将所有位取反为 010,然后对于 2 个补码的符号,我只需添加 1,但它变为 011,即 3,这是错误的答案。
我应该如何用位反转运算符计算〜?
c# - 计算十六进制字符串的补码校验和
我有一个字符串“0AAE0000463130004144430000”,我需要计算构成该字符串的十六进制字节的二进制补码校验和。
上面示例字符串的公式是
- 将值相加:0A + AE + 00 + 00 + 46 + 31 + 30 + 00 + 41 + 44 + 43 + 00 + 00 = 27(丢弃溢出)
- 从 0x100 = 0xD9 中减去结果
D9 是此示例的正确校验和,但我无法从 C# 中的字符串中解析出两位十六进制值。我当前的代码如下:
但是,据我所知,这是对 ASCII 值求和,并对每个单独的字符进行求和。
signed - 从 8 位转换为 16 位
我想知道如何将 8 位 2 的补码转换为 16 位 2 的补码有符号数?
1100 0110 是一个例子
java - 在Java中将2的补码字节转换为无符号正值
我在 Java 中有一个 8 位字节数组。字节数组由它从外部传感器接收的 16 位数字的高字节和低字节组成。
例如,字节数组可能如下:
在上面的字节数组中,每个偶数索引是 16 位数字的高字节,每个奇数索引是低字节。
我遇到的问题是当数字大于 127 时,导致数字的 2 的补码表示占上风。我真正想做的是保持正数无符号数。因此我不关心 2 的补码。这是我试图做的没有成功的事情。
我试图转换为短以使 8 位数字无符号,但似乎 java 截断了前导 0 的广告将其视为 8 位并保留负号。有谁知道也许更好的方法?
## 编辑:我不知道这是否重要,但值得一提的是,这是一个在 Android 上运行的应用程序。##
干杯,