`
milk_36
  • 浏览: 120775 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

转--通过位运算求整数的绝对值

 
阅读更多

MOV EDX, EAX;

SAR EDX, 31;     //如果EAX是负数:EDX=oxffffffff,否则EDX=0

XOR EAX, EDX; //如果EAX是负数:EAX取反,否则EAX不变

SUB EAX, EDX;   //如果EAX是负数:EAX减0xffffffff(-1) 取反加1就是绝对值,否则EAX不变

int temp = Num;
temp = temp >> 31;
Num= Num^ temp;
Num= Num- temp;

分享到:
评论

相关推荐

    经典的位运算合集 Matrix67及总结

    【转载】常用位操作 位运算应用口诀 常用位操作 几个常用的位操作 计算树状数组lowbit的三种方法 统计一个整数的二进制中1的个数(位运算技巧) 收藏 统计一个整数的二进制中1的...用位运算求整数的绝对值的三种方法

    数据结构课程设计-长整数四则运算

    数据结构课程设计中,"长整数四则运算"是一个常见的课题,主要目的是让学生掌握数据结构的基本原理并应用到实际问题中。在这个设计中,我们使用双向循环链表来存储长整数,这是一种高效且灵活的数据结构,适用于处理...

    Java编写的大整数四则运算

    通过自定义的`Test1`和`Test2`类,我们不仅可以高效地处理大整数的四则运算,还能准确地求出最大公约数和最小公倍数,这对于需要处理超大数据集或高精度计算的场景尤为重要。这种实现方式不仅加深了我们对大整数运算...

    能够实现逻辑运算(逻辑非、逻辑加、逻辑乘、逻辑异)、定点整数的单符号位补码加减运算、定点整数的原码一位乘法运算和浮点数的加减运算

    - **补码加减运算**:定点整数的加减运算要考虑符号位,因为补码不仅包含数值部分,还包括表示正负的符号位。相同符号的两数相加会得到一个较大绝对值的数,不同符号的两数相加会进行减法运算。需要注意溢出的情况,...

    (4.1)--整数乘法运算1

    例如,当两个n位的带符号整数相乘时,如果乘积的绝对值超过了n位所能表示的最大值(即2^(n-1)-1),就会发生溢出。在C语言中,如果两个操作数都是`int`类型,那么结果也会是`int`类型,这意味着32位系统上两个32位...

    py代码-例2-1-2 输入一个整数,输出其绝对值

    本示例代码"py代码-例2-1-2 输入一个整数,输出其绝对值"旨在教授如何通过Python程序获取用户输入的整数并计算其绝对值。 首先,让我们了解如何在Python中读取用户输入。在Python 3.x中,我们可以使用内置函数`...

    ACM位运算技巧

    6. **计算绝对值**:通过位运算可以快速获取一个数的绝对值。 7. **取模与乘除法的位运算替代**:在不产生溢出的情况下,可以通过位运算实现取模、乘法和除法操作。 #### 实际应用案例 - **去掉或添加二进制位**:...

    C++ 实现大整数的加减乘除运算

    通过对数据结构的精心设计以及对各种操作的优化,它能够支持非常大的整数进行加减乘除等基本算术运算。这对于处理金融计算、密码学等领域中的大数值是非常有用的。同时,该类还提供了一系列的比较操作符,方便用户...

    用32-bit整数模拟32-bit和64-bit浮点数除法

    描述中提到,这个程序只使用32-bit整数进行位移和加法,这意味着它可能通过位运算来模拟浮点数的二进制表示。位移操作(左移和右移)可以用来表示乘以或除以2的幂次,而加法可以用来合并尾数。然而,要精确模拟浮点...

    各种快速位运算算法 算法优化

    * 计算整数的绝对值:通过使用无条件跳转指令来实现。 * 计算两个整数的最小值或最大值:通过使用无条件跳转指令来实现。 * 判断整数是否为2的幂:通过检查整数的二进制表示来确定。 * 符号扩展:通过使用移位和逻辑...

    ACM位运算技巧大全.doc(超级详细)

    - **计算绝对值**:通过位运算可以快速计算出整数的绝对值。 ```plaintext int abs(int x) { int y = x >> 31; return (x ^ y) - y; } ``` - **取模运算转换为位运算**:当除数为2的幂时,可以直接使用位...

    长整数_长整数;基本运算_

    1. **加法(+)**:两个长整数相加,可以通过将它们的二进制表示拼接起来然后进行加法运算得到结果。在C++中,你可以直接使用`+`操作符来实现这个操作,编译器会自动处理溢出的问题。 2. **减法(-)**:减法与加法类似...

    java编译的大整数程序可加减求绝对值开平方

    本文将详细讲解如何使用`BigInteger`进行大整数的加减运算、求绝对值以及开平方。 1. ** BigInteger 类的创建与使用**: `BigInteger`类通过构造函数创建,可以接受字符串或者字节数组作为参数。例如,创建一个大...

    分式的混合运算和整数指数幂提高导学案习题含答案-7页.pdf

    通过以上知识点的学习,学生应能熟练掌握分式的混合运算,理解整数指数幂的运算规则,灵活运用科学记数法。在解题过程中,需要注意运算顺序,巧妙运用运算律,以及适时使用整体思想进行化简。同时,理解并应用负整数...

    两个n位大整数的四则运算数据结构课程设计报告

    在本课程设计报告中,学生张晨阳的任务是设计一个能进行两个n位大整数四则运算的算法。这个任务的关键在于有效地处理大整数的存储和计算,特别是考虑到性能和交互性。以下是实现这一任务的具体知识点: 1. **数据...

    13-位运算-自己使用的C语言教程PPT-适合老师备课或者自学.pptx

    例如,你可以通过位与运算来掩码某个值,只保留特定的位,而位或运算则常用来设置或添加位。 此外,了解数值的原码、反码和补码表示非常重要。原码直接表示一个数的符号和绝对值,反码和补码主要用于负数的表示。在...

    计组课设,A题输入包含5个整数(有符号数)的数组M,输出最大负数的绝对值

    1. **有符号数的表示**:在计算机中,有符号整数通常使用补码表示法,其中最高位用于表示正负。对于正数,其补码与原码相同;对于负数,补码是其按位取反后加1的结果。 2. **数组操作**:数组是一种数据结构,可以...

    长整数运算.zip

    设计程序实现两个任意长整数的求和运算。 [ 基本要求 ] 《数据结构》题集 利用双向循环链表实现长整数的存储, 每个结点含一个整型变量. 任何整型变量的范围是 -(215-1)~(215-1)。输入和输出形式: 按中国对于长...

    单链表实现十进制大整数运算

    2. 正负表示:对于负数,可以使用额外的标志位来表示,或者将负数的绝对值用链表表示,然后在运算过程中进行调整。 三、基本运算 1. 加法:从低位到高位逐位相加,处理进位。如果某位相加大于9,则需要向高位进位...

    Java位运算的应用

    10. **计算绝对值**:`abs(x)`函数通过位运算求`x`的绝对值。`x>>31`获取`x`的符号位,`x^y`再与`y`异或,可以将负数变为正数,正数不变。 11. **取模运算**:`a%(2^n)`等价于`a&(2^n-1)`,这在不产生溢出的情况下...

Global site tag (gtag.js) - Google Analytics