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

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;

你可能感兴趣的:(位运算)