繁体   English   中英

如何在ARM中的二进制补码中找到整数的绝对值

How to find the absolute value of an integer in Two's complement in ARM

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

如果我有-2(11111111111111111111111111111110),是否有一个整洁的ARM指令或一系列这样的指令(00000000000000000000000000000010)。 自从我松开了第30位以来,OR或XOR无法按照我的尝试进行。

谢谢

1 个回复

要查找整数的绝对值,请使用比较和减法。

@ input in r0
cmp r0, #0          @ is r0 < 0?
rsbmi r0, r0 #0     @ if yes, r0 = 0 - r0
1 从二进制补码值Embedded C中获取负整数

我知道在这里有很多关于从/到二进制补码格式转换的类似问题,我尝试了很多,但是对我来说似乎没有帮助。 好吧,我正在从事一个嵌入式项目,该项目涉及通过SPI写入/读取从设备的寄存器。 这里涉及的寄存器是一个22位位置寄存器,以二进制补码格式存储uStep值,范围为-2 ^ 21到+ 2 ^ ...

2 C 找到最大的二进制补码整数

我的任务是找到最大的二进制补码整数或 TMax。 我完全不知道如何做到这一点。 我知道正确的值是 0x7fffffff 或 2147483647,但我不知道如何准确地得到这个结果。 这是 32 位整数的最大数目。 我不能使用函数或条件,最多可以使用 4 个操作。 任何人都可以尝试帮助向我解释这一点吗 ...

4 字节到整数的二进制补码

以下C代码片段来自rtl_fm.c ,它是rtlsdr项目的一部分(我已经添加了printf语句) 输出的示例行是: buf 7c 82, buf16 fffd 3 buf16是类型int16_t,数组buf是字节(字符*)的阵列, len是长度buf 我想将此移植到Go。 ...

2014-11-01 07:08:55 1 183   c/ go
5 .NET 的整数不是仅仅基于二进制补码系统吗?

微软: Int32 值以 31 位表示,其中 30 秒位用作符号位。 正值通过使用符号和大小表示来表示。 负值以二进制补码表示。 使用符号和幅度系统的正值表示与使用二进制补码系统的正值表示是否相同? 所以不应该将它改写为: “Int32 值(无论是正还是负)都以二进制补码表示 ...

7 减的有符号值的二进制补码

在VHDL分配中,我必须制作一个ALU,该输出在16位输入上输出减法和二进制补码以及其他一些运算的结果。 以某种方式将rtl代码与功能代码进行比较。 在功能代码中,我使用了“ +”,“-”和...之类的算术运算,但在rtl中,我使用了结构化VHDL。 这就是为什么我必须准确,以便这些代 ...

9 有符号整数为二进制补码十六进制

我在Python中编写了一个函数来获取有符号整数,使用两个补码转换它然后返回十六进制值。 我知道有一个hex()函数,但我希望能够指定整数的大小。 我怎么能提高这段代码的质量,我错过了什么? 谢谢! 此代码应返回值0118和CA ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM