Re: две школьные задачки по информатике

"Sergey V. Spiridonov" <[email protected]> Fri, 23 Apr 2004 23:00:41 +0200
Newsgroups gmane.org.it-ru.germany.general
Message-ID <[email protected]>
Anatoli Klassen wrote:

> Кстати, переполнение может быть.

Да, без опасности переполнения знаю решение только для первой задачи.

> Я хоть, как известная мартышка, два раза об одном и том же думать не 
> умею, но напрягся и вот :)
> 
> c = a-b;
> d = c >>> 31;    // сдвиг вправо, записывая 0 в старший разряд
> e = 1-d;
> 
> int[] f = new int[] { a, b };
> 
> a = f[d];
> b = f[e];
> 
> (для 32-битных чисел, Ява-синтакс)

О! Здорово! Есть ещё порох в пороховницах!

P.S. Надо операции сдвига для таких умников запрещать :)
-- 
Best regards, Sergey Spiridonov