twos-complement相关内容

手工进行二进制2的补码乘法吗?

我必须手动计算MIPS乘法,我遇到了麻烦。 我有两个寄存器,$8,它保存的二进制补码表示为-1073741824(即2^30)和$9,其中二进制补码为+3,我需要找到这条mips指令的结果 mult $8, $9 我完全迷路了。是否需要先将值转换为二的补码,然后再使用二进制乘法? 推荐答案 MULT指令是两个32位寄存器的带符号乘法。它将结果存储在特殊的(Hi,Lo)寄 ..
发布时间:2022-07-03 09:53:48 其他开发

在一个不支持负零的系统中产生负零有什么意义?

C17 6.2.6.2/4表示: 如果实现不支持负零,则&;、|、^、~、<;<;的行为, And>>运算符的操作数将生成这样的值,这是未定义的。 如果我有一个2的补码系统,它不支持负零。它总是利用二进制数的所有可能组合来表示值。因此,无论使用哪种位运算,都不可能生成负零。那么这篇文章的意思是什么呢? 我的看法是,这部分指的是具有1的补码或带符号幅度的系统,这些系统 ..

经度读数以 1x10^-7 度 lsb 为单位测量,带符号 2 的补码

我正在通过 udp 数据包从 gps 单元接收数据.Lat/Lng 值是十六进制的. 示例数据 13BF71A8 = 纬度 (33.1313576) BA18A506 = 经度 (-117.2790010) 文档解释说,经度/纬度读数以度为单位测量,1x10^-7 度 lsb,带符号 2 的补码. 对于纬度,我可以使用以下公式进行转换: 13BF71A8 = 3313135 ..
发布时间:2022-01-22 13:46:54 前端开发

为什么 -3==~2 在 C#

无法理解.为什么输出“相等" 代码: if (-3 == ~2)Console.WriteLine("等于");别的Console.WriteLine("不等于"); 输出: 等于 解决方案 因为 二进制补码位算术 就是这样 从维基百科页面抄袭并扩展: 大部分重要的位 6 5 4 3 2 1 0 值0 0 0 0 0 0 1 1 30 0 0 0 0 0 1 0 20 0 ..

什么是 2 的补数?

什么是 2 的补数? 为什么我们取 1 的补码并加 1?取 1 的补码后为什么不减 1? 为什么计算机使用 2 的补码? 解决方案 什么是 2 的补数? 补数系统用于表示负数.所以,2的补数系统用于表示负数. 更新 问:“2 的补码系统"是什么意思? A:二进制数的负数是它的 2 的补码.(1 的补码 + 1) 注意:表示数字的符号需要 1 个额外的位.MSB(最 ..

2 的补码中的 -128 和 128

在 2 的补码中,0-127 表示为 00000000 到 01111111.如果是负数,我们将无符号表示中的所有位反转并加 1 以获得 2 的补码. (参考:http://en.wikipedia.org/wiki/Signed_number_representations#Two.27s_complement) 所以 2 的补码中的 -1 将是: 无符号 1 = 00000001 ..
发布时间:2022-01-09 19:57:56 其他开发

如何进行整数的两个补码乘法和除法?

我已阅读这篇关于使用两个补码进行二进制乘法的帖子.但对我来说不是很清楚.甚至我也很难理解关于此的 wiki 文章.我想知道如何计算负数的乘法: 例如:-1 和 -7 应该是 7.-1 的 4 位 2 的补码是:1111-7 的 4 位 2 的补码是:1001 一些逐步计算乘法的方法会有所帮助.我没有看到关于分裂的文章.如何解决这个问题? 解决方案 第 1 步:sign extend 两 ..
发布时间:2022-01-09 19:52:09 其他开发

Java二进制补码到整数

我知道用 Integer.toBinaryString(355) = 0000000101100011 将十进制转换为二进制Integer.toBinaryString(-355) = 1111111010011101(我取 32 位结果的低 16 位). 我想做的是另一种方式,采用 16 位二进制补码二进制字符串并转换为十进制. 即 0000000000110010 = 50111 ..
发布时间:2022-01-09 19:48:22 Java开发

在objective-c中将二进制二进制补码数据转换为整数

我有一些来自加速度计的二进制数据(二进制补码),我需要将其转换为整数.是否有一个标准库函数可以做到这一点,还是我需要编写自己的代码? 例如:我从加速度计接收到一个 NSData 对象,当转换为十六进制时,它看起来像这样: C0088001803F 这是 3 个 2 字节数据块的串联: x = C008y = 8001z = 803F 只关注 x 轴: 十六进制 = C008十进制 ..
发布时间:2022-01-09 19:47:41 移动开发

8位二进制从0减1

我有 8 位 int zero = 0b00000000; 和 8 位 int one = 0b00000001;根据二进制算术规则, 0 - 1 = 1(从下一个有效位借用 1). 如果我有: int s = 零 - 一;s = -1;-1 = 0b1111111; 所有这些 1 是从哪里来的?没有什么可以借用的,因为 zero 变量中的所有位都是 0. 解决方案 这是一 ..
发布时间:2022-01-09 19:47:26 其他开发

Java 二进制文字 - 字节值 -128

由于 SE 7 Java 允许将值指定为二进制文字.文档告诉我“字节"是一种可以容纳 8 位信息的类型,值 -128 到 127. 现在我不知道为什么,但如果我尝试将二进制文字分配给 Java 中的一个字节,我无法定义 8 位,而只能定义 7 位,如下所示: 字节 b = 0b000_0000;//求解到值0字节 b1 = 0b000_0001;//求解到值1字节 b3 = 0b000_0 ..
发布时间:2022-01-09 19:43:33 Java开发

仅使用位运算符以二进制执行算术运算

可能重复: 如何仅使用乘法和除法位移和加法? 我必须编写函数来执行二进制减法、乘法和除法,而不使用除循环控制之外的任何算术运算符.我之前只用 Java 编写过代码,所以我很难理解这一点. 从减法开始,我需要用原型写一个函数 int bsub(int x, int y) 我知道我需要将 y 转换为二进制补码以使其为负并将其添加到 x,但我只知道如何通过使用补码 ~ 运算符并加 1 ..
发布时间:2022-01-09 19:42:12 其他开发

加减补码

使用六位 1 和 2 的补码表示我试图解决以下问题: 12 - 7 现在,我先取二进制的 12 和二进制的 7. 12 = 001100 - 6 位7 = 000111 - 6 位 那么,我是否会翻转二进制补码的位并加一个? 12 = 110011 个补码+ 1--------0011017 = 111000 个补码+ 1---------111001 然后,将这两个补码相加 00 ..
发布时间:2022-01-09 19:40:06 其他开发

负数作为2的补码存储在内存中,CPU如何知道它是负数还是正数?

-1 可以用 4 位二进制表示为(2 的补码)1111 15 也表示为 1111. 那么,当 CPU 从内存中获取值时,它是如何区分 15 和 -1 的呢? 解决方案 当一个字节从一个地方移动到另一个地方时,CPU 并不关心它是保持 -1 还是 15.没有“签名移动"之类的东西(到相同大小的位置 - 更大或更小的目的地都有签名移动). CPU 仅在对字节进行算术运算时才关 ..
发布时间:2022-01-09 19:34:20 其他开发

二进制补码

据我所知,补码算法是: 1.用二进制表示十进制. 2.反转所有位. 3.最后一位加1. 对于数字 3,其表示形式为:0000000000000011 二进制补码的结果将是 1111111111111101,即 -3. 到现在为止还挺好.但是对于表示为 0000000000000010 的数字 2,二进制补码的结果将是 1111111111111101,它不是 2 而是 -3. ..
发布时间:2022-01-09 19:33:01 其他开发

为什么 -INT_MIN = INT_MIN 在有符号的二进制补码表示中?

我仍然没有找到为什么最小的有符号负数没有等效的有符号正数的原因?为简单起见,我的意思是 3 位二进制数100是-4?但我们不能有一个正4的签名格式,因为我们不能.它溢出了.那么我们如何知道二进制补码 1000 是 -4 1000 0000 是 -128 等等?我们没有原始的正数 解决方案 一种思考方式是有符号的二进制补码格式的工作原理是为每个位分配一个 2 的幂,然后翻转最后一个 2 的幂 ..
发布时间:2022-01-09 19:09:21 C/C++开发

无符号数和二进制补码有符号数的哪些算术运算相同?

我正在设计一个简单的玩具指令集和附带的模拟器,并且我正在尝试找出支持哪些指令.在算术方面,我目前有无符号加减乘除.但是,我似乎无法找到以下问题的明确答案:哪些算术运算符需要有符号版本,哪些是无符号和二进制补码有符号版本? 因此,例如,二进制补码中的 1111 等于 -1.如果你给它加 1 并假装它是一个无符号数,你会得到 0000,即使认为它是 -1 也是正确的.但是,这适用于所有数字吗?那 ..
发布时间:2022-01-09 19:03:01 其他开发