Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Sashka Yackubtchick                  2:5054/29.54   29 Nov 2001  02:51:51
 To : Andrey Tarasevich
 Subject : максимум двух чисел без сравнения
 -------------------------------------------------------------------------------- 
 
 
 28 Nov 01 04:54, Andrey Tarasevich писАл(а) к Kostya Sudilovsky:
  >> ...
  >>  >> как найти максимум двух чисел не используя условного оператора
  >>  YZ> max(x,y) = (x+y+|x-y|)/2
  >> Так ведь сказано: не используя условного оператора
  >> abs(x) по определению x если x>=0 иначе -x
  >> ...
 
  AT> По определению - да. По реализации - не обязательно. Если число 'x'
  AT> задано в дополнительном коде, то 'abs(x)' получается путем сброса
  AT> знакового бита в 'x'.
 
 Во всех известных мне машинах ЦЕЛОЧИСЛЕHЫЕ типы хранят отрицательные значения
 в обратном коде.
 Для того чтобы незнакомому с этим понятием было понятно.
 Любой тип в представлении на компьютере имеет количество разрядов
 обратный код = минимальному числу на разряд выше этого числа разрядов
 минус абсолютное значение отрицательного числа.
 Если бы регистры хранили десятичное трехразрядное число то минус 1
 было бы = 1000(минимальное число из 4х разрядов) - 1 = 999
 а минус 2 = 1000 - 2 = 998
 В двоичном типе байт (8 разрядов) - 1 будет соответсвенно
  1 0000 0000 (9 разрядов) - 1 = 1111 1111
 -2 = 1 0000 0000 - 0000 0010(два) = 1111 1110
 Соответсвенно если сбросить старший (знаковый) бит то вместо 1111 1111
 мы получим 0111 1111 а нужно 0000 0001.
 
 Чтобы понять почему записывается так - попробуйте сложить отрицательное число
 с положительным или два отрицательных числа и посмотреть что будет в разрядах
 отведённых данному типу
 например -1 + 1 = 1111 1111 + 0000 0001 = 1 0000 0000 - восемь разрядов = 0
          -2 + 1 = 1111 1110 + 0000 0001 =   1111 1111 - разряды = -1
          -1 + 2 = 1111 1111 + 0000 0010 = 1 0000 0001 - восемь разрядов = 1
 Разряды получаемые за пределами разрядов типа не пишутся (для них просто не
 отводится место) и отражаются обычно во флаге (в x86 - CF) для того чтобы
 дать возможность использовать значение этого флага как результата займа или
 переноса в последующих операциях (например если складываются или вычитаются
 числа пользовательских типов невмещаемые в регистры)
 Изменить знак числа с помощью лишь одного изменения знакового бита можно
 лишь в некоторых FPU.
 
 Пока!
              Sashka, The Svin.
 
 --- GoldED/W32 3.00.Beta1+
  * Origin: Svin, Perm, Russia  (2:5054/29.54)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 максимум двух чисел без сравнения   Andrew Simontsev   27 Nov 2001 01:11:30 
 Re: максимум двух чисел без сравнения   Yurij Zabelyshynskij   27 Nov 2001 00:31:15 
 максимум двух чисел без сравнения   Kostya Sudilovsky   27 Nov 2001 22:36:05 
 Re: максимум двух чисел без сравнения   Yurij Zabelyshynskij   28 Nov 2001 02:51:03 
 максимум двух чисел без сравнения   Victor Petrenko   28 Nov 2001 21:20:24 
 Re: максимум двух чисел без сравнения   Yurij Zabelyshynskij   28 Nov 2001 23:52:18 
 максимум двух чисел без сравнения   Victor Petrenko   29 Nov 2001 01:11:47 
 Re: максимум двух чисел без сравнения   Andrey Tarasevich   28 Nov 2001 05:54:54 
 Re: максимум двух чисел без сравнения   Sergey Voloshchuk   28 Nov 2001 12:47:22 
 Re: максимум двух чисел без сравнения   Andrew Ezhguroff   28 Nov 2001 14:08:02 
 Re: максимум двух чисел без сравнения   Yurij Zabelyshynskij   28 Nov 2001 23:52:16 
 Re: максимум двух чисел без сравнения   Andrey Tarasevich   29 Nov 2001 03:40:45 
 максимум двух чисел без сравнения   Sashka Yackubtchick   29 Nov 2001 02:51:51 
 Re: максимум двух чисел без сравнения   Andrey Tarasevich   29 Nov 2001 05:19:14 
 максимум двух чисел без сравнения   Sashka Yackubtchick   04 Dec 2001 01:13:37 
 Re^2: максимум двух чисел без сравнения   Sergey Politov   29 Nov 2001 06:29:25 
 максимум двух чисел без сравнения   Stanislav Shwartsman   28 Nov 2001 08:22:50 
 максимум двух чисел без сравнения   Alexander Chelmodeev   28 Nov 2001 14:27:32 
 максимум двух чисел без сравнения   Stanislav Shwartsman   28 Nov 2001 21:57:33 
 максимум двух чисел без сравнения   Alexander Chelmodeev   29 Nov 2001 02:20:34 
 максимум двух чисел без сравнения   Andrew Simontsev   30 Nov 2001 04:54:50 
 Re: максимум двух чисел без сравнения   Andrey Tarasevich   30 Nov 2001 20:44:59 
 Re: максимум двух чисел без сравнения   Andrew Ezhguroff   28 Nov 2001 14:08:02 
 максимум двух чисел без сравнения   Alexey Gradovtsev   01 Dec 2001 21:18:25 
 Re: максимум двух чисел без сравнения   Andrew Ezhguroff   02 Dec 2001 06:44:58 
 максимум двух чисел без сравнения   Kostya Sudilovsky   02 Dec 2001 23:36:38 
 максимум двух чисел без сравнения   Alexey Gradovtsev   03 Dec 2001 22:50:22 
 максимум двух чисел без сравнения   Sashka Yackubtchick   04 Dec 2001 06:20:13 
 Re: максимум двух чисел без сравнения   Andrew Ezhguroff   04 Dec 2001 06:39:06 
 максимум двух чисел без сравнения   Alexey Gradovtsev   28 Nov 2001 17:12:49 
 максимум двух чисел без сравнения   Egor Belskikh   28 Nov 2001 23:25:06 
 максимум двух чисел без сравнения   Sashka Yackubtchick   29 Nov 2001 02:44:06 
 максимум двух чисел без сравнения   Kartohin Ruslan   29 Nov 2001 09:12:53 
 Re: максимум двух чисел без сравнения   Andrew Ezhguroff   30 Nov 2001 07:04:48 
 максимум двух чисел без сравнения   Kartohin Ruslan   02 Dec 2001 00:18:59 
 Re: максимум двух чисел без сравнения   Andrew Ezhguroff   02 Dec 2001 05:35:31 
 Re: максимум двух чисел без сравнения   Andrey Dashkovsky   28 Nov 2001 23:26:02 
 максимум двух чисел без сравнения   Sashka Yackubtchick   04 Dec 2001 19:53:50 
 максимум двух чисел без сравнения   Nickita A Startcev   01 Dec 2001 02:53:44 
 максимyм двyх чисел без сpавнения   Peter Pike\'s   14 Dec 2001 03:15:17 
Архивное /ru.algorithms/33843c0599f6.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional