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; |
通过位运算求整数的绝对值
订阅:
博文评论 (Atom)
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; |
没有评论:
发表评论