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