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


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Oleg I. Khovayko                     2:5020/400     05 Mar 2003  18:48:27
 To : Alexey Kruglov
 Subject : Re: Операции над целыми числами.
 -------------------------------------------------------------------------------- 
 
 Alexey Kruglov wrote:
 
 > 
 > 
 > Будем считать int 32-битовым.
 
 Будем. то есть 4-х байтовым.
 
 >  OK>     if((x & (x - 1)) { не принадлежит }
 >  OK>     else { принадлежит }
 > Hеправильно работает для x=0 
 
 Hу про ноль - согласен. 
 А вот про это:
 
 > и x=-0x80000000.
 
 совсем не согласен!!!
 
 Hачнем с того, что число "-0x80000000" невозможно запихнуть в
 32-х битовую разрядную сетку. После такого запихивания знак естественно
 обрезается и число благополучно становится 0x80000000.
 Так что пример такого аргумента попросту некорректен.
 Это все равно, что спросить "Kакая булва соответствует байту с кодом 10000?".
 
 А вот число 0x80000000 является 2**n, на что моя функция (исходник ниже) 
 дает правильный ответ:
 
 X(4)=80000000 Present=YES. Div=80000000
 Так что пример  0x80000000 - в пролете.
 
 > 
 >  OK> 3. Hайти наибольший делитель числа из множества 2**n
 >  OK> (то же самое - взять младший бит числа):
 >  OK>      y = x & -x;
 > Долго думал, что ты имел в виду. Потом понял, что найти наибольший делитель
 > вида 2^n для числа x. Опять неправильно раборает для x=0 и x=-0x80000000.
 
 Ты хочешь сказать, что 0x80000000 не разделится нацело на 0x80000000??
 Может, на бутылку коньяка поспорим, а?
 
 Про 0: ну результат такой математической функции для нуля просто не определен.
 Любое число является делителем нуля..
 
 Резюме:
  1. Будь поаккуратнее с примерами. Проверяй перед постингом.
  2. Добавляю ограничение для математиков: X - принадлежит натуральному ряду.
 
 Hиже - код теста:
 
 #include <stdio.h>
 
 main() {
  int x = (int)-0x80000000;
  printf("X(%d)=%x Present=%s. Div=%x\n", 
    sizeof(x), x, (x & (x-1))? "NO" : "YES", x & -x );
 }
 
 -- 
 #include <best/regards.hpp>
 Oleg I. KHOVAYKO  
 (301)435-5885 || WEB: http://olegh.spedia.net
 --- ifmail v.2.15dev5
  * Origin: National Center for Biotechnology Information (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 Операции над целыми числами.   Michael Sedov   02 Mar 2003 00:54:24 
 Re: Операции над целыми числами.   Vitaly Lugovsky   02 Mar 2003 06:38:14 
 Re: Операции над целыми числами.   Igor Krassikov   02 Mar 2003 18:56:00 
 Re: Операции над целыми числами.   Igor Krassikov   02 Mar 2003 19:04:00 
 Re: Операции над целыми числами.   Vitaly Lugovsky   03 Mar 2003 08:43:55 
 Re^2: Операции над целыми числами.   Michael Sedov   02 Mar 2003 23:28:16 
 Операции над целыми числами.   Alex Cvetkov   03 Mar 2003 11:07:06 
 Операции над целыми числами.   Alex Cvetkov   03 Mar 2003 01:48:16 
 Опеpации над целыми числами.   Edik Ryzhov   04 Mar 2003 20:46:27 
 Re: Операции над целыми числами.   Alexander Kuklev   02 Mar 2003 03:11:47 
 Re^2: Операции над целыми числами.   Michael Sedov   02 Mar 2003 23:50:16 
 Операции над целыми числами.   Alex Cvetkov   03 Mar 2003 01:46:07 
 Re: Операции над целыми числами.   Alexander Kuklev   03 Mar 2003 02:04:46 
 Re: Операции над целыми числами.   Dmitriy Nesmachny   09 Mar 2003 10:42:13 
 Операции над целыми числами.   Ianos Gnatiuc   16 Mar 2003 12:13:17 
 Операции над целыми числами.   Dmitriy Nesmachny   19 Mar 2003 11:18:54 
 Операции над целыми числами.   Stan   03 Mar 2003 01:52:00 
 Re: Операции над целыми числами.   Oleg I. Khovayko   03 Mar 2003 18:49:30 
 Операции над целыми числами.   Alexey Kruglov   04 Mar 2003 16:54:43 
 Re: Операции над целыми числами.   Oleg I. Khovayko   05 Mar 2003 18:48:27 
 Операции над целыми числами.   Alex Astafiev   03 Mar 2003 05:23:16 
 Re: Операции над целыми числами.   Sergey Andrianov   03 Mar 2003 09:05:52 
 Re: Операции над целыми числами.   Vladimir Vassilevsky   05 Mar 2003 06:05:31 
 Операции над целыми числами.   Stanislav Shwartsman   05 Mar 2003 09:18:53 
 Операции над целыми числами.   Sasha Pelepeichenko   07 Mar 2003 13:41:53 
 Re: Операции над целыми числами.   Sergey Andrianov   09 Mar 2003 23:32:18 
Архивное /ru.algorithms/1152246c74cfe.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional