|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Andrey Tarasevich 2:5020/400 29 Nov 2001 03:40:45 To : Yurij Zabelyshynskij Subject : Re: максимум двух чисел без сравнения --------------------------------------------------------------------------------
Yurij Zabelyshynskij wrote:
> ...
> > Если число 'x' задано в дополнительном коде, то
> > 'abs(x)' получается путем сброса знакового бита в 'x'.
>
> Это неверно. Дополнительный код записывается так, чтобы при сложении
> (и вычитании) не имело значения, участвуют в нем знаковые или
> беззнаковые числа. Т.е. -n записывается как битовый NOT (n) + 1.
> Поэтому для вычисления abs(n) можно
> cdq
> xor eax, edx
> sub eax, edx
> ...
ОК, ошибся в термине. Есть такой код, как signed magnitude. Вот в нем
достаточно безусловно сбросить знаковый бит.
Best regards,
Андрей.
--- ifmail v.2.15dev5
* Origin: good enough (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/6682dafb0372.html, оценка из 5, голосов 10
|