Re[6]: if ( i&&0x1)
От: adontz Грузия http://adontz.wordpress.com/
Дата: 04.06.04 21:41
Оценка: :))) :))
Здравствуйте, Анатолий Широков, Вы писали:

АШ>Да, выступил я по полной программе. "Хочу загладить, искупить". Ужас как стыдно.


У меня тут газон не подстрижен и кран подтекает
A journey of a thousand miles must begin with a single step © Lau Tsu
Re: if ( i&&0x1)
От: WolfHound  
Дата: 04.06.04 20:14
Оценка: 25 (2) +2
Здравствуйте, emergenter, Вы писали:

E>Подскажите пожалуйста что обозначает данная запись (какое тут условие)??

E>unsigned int i;
E>if(i&&0x1)
E>{

E>}

Бред какой-то... && это логическое И. i приводится к bool и 0x1 проводится к bool а bool(0x1)==true те получаем if(i&&true) что тоже самое что просто if(i).
... << RSDN@Home 1.1.3 beta 1 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re: if ( i&&0x1)
От: Анатолий Широков СССР  
Дата: 04.06.04 19:41
Оценка: -4
Здравствуйте, emergenter, Вы писали:

E>Подскажите пожалуйста что обозначает данная запись (какое тут условие)??

E>unsigned int i;
E>if(i&&0x1)
E>{
// если i нечетное или 0 бит i равен '1' — что-то в этом роде
E>}
Re[4]: if ( i&&0x1)
От: WolfHound  
Дата: 04.06.04 20:14
Оценка: +2
Здравствуйте, Анатолий Широков, Вы писали:

АШ>Циклический сдвиг битов i на 1 бит вправо или деление i на 2.

Зачем циклический? Просто сдвиг.
... << RSDN@Home 1.1.3 beta 1 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[2]: if ( i&&0x1)
От: ak13_boda  
Дата: 05.06.04 05:23
Оценка: +2
Здравствуйте, Анатолий Широков, Вы писали:

АШ>Здравствуйте, emergenter, Вы писали:


E>>Подскажите пожалуйста что обозначает данная запись (какое тут условие)??

E>>unsigned int i;
E>>if(i&&0x1)
E>>{
АШ> // если i нечетное или 0 бит i равен '1' — что-то в этом роде
E>>}
на самом деле эта запись значит (i!=0) и "истина", т.е. она эквиваленьна в данном случае if (i)
Re[3]: if ( i&&0x1)
От: Анатолий Широков СССР  
Дата: 04.06.04 19:49
Оценка: -1
Здравствуйте, emergenter, Вы писали:

E>Спасибо а вот такая запись??


i>>>=1;


Циклический сдвиг битов i на 1 бит вправо или деление i на 2.
Re[5]: if ( i&&0x1)
От: Анатолий Широков СССР  
Дата: 04.06.04 20:21
Оценка: :)
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, Анатолий Широков, Вы писали:


АШ>>Циклический сдвиг битов i на 1 бит вправо или деление i на 2.

WH>Зачем циклический? Просто сдвиг.

Да, выступил я по полной программе. "Хочу загладить, искупить". Ужас как стыдно.
Re[3]: if ( i&&0x1)
От: adontz Грузия http://adontz.wordpress.com/
Дата: 05.06.04 20:39
Оценка: :)
Здравствуйте, Tolyan, Вы писали:

T>... но как товарисч adontz умудрился поставить 24 бала за 2 присеста.


Это ещё что! Я однажды умудрился поставить 2(!) оценки одному и тому же сообщению! Жалко, что во внутреннем форуме, а то бы показал.
A journey of a thousand miles must begin with a single step © Lau Tsu
if ( i&&0x1)
От: emergenter Россия  
Дата: 04.06.04 19:39
Оценка:
Подскажите пожалуйста что обозначает данная запись (какое тут условие)??
unsigned int i;
if(i&&0x1)
{

}
Re[2]: if ( i&&0x1)
От: emergenter Россия  
Дата: 04.06.04 19:45
Оценка:
Спасибо а вот такая запись??

i>>=1;
Re[2]: if ( i&&0x1)
От: Sergey A. Sablin Россия http://www.elecard.com
Дата: 05.06.04 03:36
Оценка:
Здравствуйте, Анатолий Широков, Вы писали:

АШ>Здравствуйте, emergenter, Вы писали:


E>>Подскажите пожалуйста что обозначает данная запись (какое тут условие)??

E>>unsigned int i;
E>>if(i&&0x1)
E>>{
АШ> // если i нечетное или 0 бит i равен '1' — что-то в этом роде
E>>}

это только еслии автор описАлся, вот это дествительно проверка на нечетность

if (i & 0x1)


а вот это

if (i && 0x1)


всегда истина.
Сергей.
Re[3]: if ( i&&0x1)
От: Sergey A. Sablin Россия http://www.elecard.com
Дата: 05.06.04 03:37
Оценка:
Здравствуйте, Sergey A. Sablin, Вы писали:

SAS>Здравствуйте, Анатолий Широков, Вы писали:


АШ>>Здравствуйте, emergenter, Вы писали:


E>>>Подскажите пожалуйста что обозначает данная запись (какое тут условие)??

E>>>unsigned int i;
E>>>if(i&&0x1)
E>>>{
АШ>> // если i нечетное или 0 бит i равен '1' — что-то в этом роде
E>>>}

SAS>это только еслии автор описАлся, вот это дествительно проверка на нечетность


SAS>
SAS>if (i & 0x1)
SAS>


SAS>а вот это


SAS>
SAS>if (i && 0x1)
SAS>


SAS>всегда истина.


блин сорри — это всегда i != 0
Сергей.
Re[4]: if ( i&&0x1)
От: Аноним  
Дата: 05.06.04 05:58
Оценка:
SAS>блин сорри — это всегда i != 0
правда?
а если i == 0?
Re[5]: if ( i&&0x1)
От: Sergey A. Sablin Россия http://www.elecard.com
Дата: 05.06.04 06:04
Оценка:
Здравствуйте, Аноним, Вы писали:

SAS>>блин сорри — это всегда i != 0

А>правда?
А>а если i == 0?

если i == 0, то тогда (i != 0) == 0 и все условие (0 && 1) == false
Сергей.
Re[6]: if ( i&&0x1)
От: denisku Россия  
Дата: 05.06.04 07:29
Оценка:
Здравствуйте, Sergey A. Sablin, Вы писали:

SAS>Здравствуйте, Аноним, Вы писали:


SAS>>>блин сорри — это всегда i != 0

А>>правда?
А>>а если i == 0?

SAS>если i == 0, то тогда (i != 0) == 0 и все условие (0 && 1) == false


Именно. Но это как-то не совсем согласовано с твоим утверждением, что данная конструкция всегда != 0.
Извините за потраченный траффик..
Re[2]: if ( i&&0x1)
От: Tolyan www.kbsoft-group.com
Дата: 05.06.04 08:35
Оценка:
Знаю что офтоп и меня жестоко замодерируют

... но как товарисч adontz умудрился поставить 24 бала за 2 присеста.
Re[3]: if ( i&&0x1)
От: Анатолий Широков СССР  
Дата: 05.06.04 08:45
Оценка:
_>на самом деле эта запись значит (i!=0) и "истина", т.е. она эквиваленьна в данном случае if (i)

Да, спасибо, я отвечал так как будто-то было написано i&0x01 — в этом и состоит конфуз. Поздно было, темно — не разглядел
Re[3]: if ( i&&0x1)
От: _nn_  
Дата: 05.06.04 08:55
Оценка:
Здравствуйте, Tolyan, Вы писали:

T>Знаю что офтоп и меня жестоко замодерируют


T>... но как товарисч adontz умудрился поставить 24 бала за 2 присеста.


Это будет онтоп в "обсуждение сайта".

Вот здесь
Автор: IT
Дата: 16.04.03
можно почитать почему это так выходит.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[4]: if ( i&&0x1)
От: Tolyan www.kbsoft-group.com
Дата: 05.06.04 09:10
Оценка:
Здравствуйте, _nn_, Вы писали:

__>Вот здесь
Автор: IT
Дата: 16.04.03
можно почитать почему это так выходит.


Вот так всегда до мануала руки доходят в последнее время
Re[5]: i>>=1
От: Dmi3evS Россия http://dmi3s.blogspot.com/
Дата: 05.06.04 17:37
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Просто сдвиг.


Ну не совсем просто

5.8 Shift operators
3 The value of E1 >> E2 is E1 right-shifted E2 bit positions. If E1 has an unsigned type or if E1 has a signed type and a nonnegative value, the value of the result is the integral part of the quotient of E1 divided by the quantity 2 raised to the power E2. If E1 has a signed type and a negative value, the resulting value is implementation-defined.

... << Rsdn@Home 1.1.4 beta 1 >>
Re: if ( i&&0x1)
От: Аноним  
Дата: 09.06.04 20:32
Оценка:
Здравствуйте, emergenter, Вы писали:

E>Подскажите пожалуйста что обозначает данная запись (какое тут условие)??

E>unsigned int i;
E>if(i&&0x1)
E>{

E>}


Что-то пролистал тему, столько ответов и предложений. Что захотель тоже посильную лепту внести
Мне кажется так более понятнее:

if( х&&0x1 ) == if ( х | 1 )
if( х||0x1 ) == if ( х & 1 )

Я знаю что сейчас сорву гром "аплодисментов" Не судите строго
Но в данном случае х — это абстракция, то бишь состояние, либо нуль, либо единица.
Повторяю — это не бинарная операцЫя, а логическая
Re[2]: if ( i&&0x1)
От: Кодт Россия  
Дата: 09.06.04 22:10
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Что-то пролистал тему, столько ответов и предложений. Что захотель тоже посильную лепту внести

А>Мне кажется так более понятнее:

А>if( х&&0x1 ) == if ( х | 1 )

А>if( х||0x1 ) == if ( х & 1 )

Что-то ты не то написал.

(x|1) — вычисление x и установка младшего бита, поэтому выражение всегда истинно.
(x&1) — вычисление x и проверка младшего бита.
(x||1) — вычисление x, затем истина. Мало чем отличается от выражения ((bool)x , true).
(x&&1) — вычисление x. Не отличается от выражения (bool)x.

x|1 эквивалентно x||1.
x&1 не эквивалентно x&&1.

А>Я знаю что сейчас сорву гром "аплодисментов" Не судите строго


...Но справедливо.

А>Но в данном случае х — это абстракция, то бишь состояние, либо нуль, либо единица.


Эта абстракция зовётся булевым выражением. У него есть совершенно определённый тип — bool.
Если ты имеешь в виду преобразование интегральных выражений к bool, то так и скажи.

А>Повторяю — это не бинарная операцЫя, а логическая


Вот специально за этим в С/С++ разнесли булевые и битовые операции.
... << RSDN@Home 1.1.2 stable >>
Перекуём баги на фичи!
Re[4]: if ( i&&0x1)
От: Аноним  
Дата: 10.06.04 05:35
Оценка:
удивительно как на такие простые вопросы находится столько вариантов ответа..) странно что среди них есть правильные.)
предлагаю еще одну тему посложнее.)
что будет после
int i=0;
++i++;
cout<<" i = "<<i;

а если не будет то в чем проблема.)))
Re[5]: if ( i&&0x1)
От: ak13_boda  
Дата: 10.06.04 07:50
Оценка:
Здравствуйте, Аноним, Вы писали:

А>удивительно как на такие простые вопросы находится столько вариантов ответа..) странно что среди них есть правильные.)

А>предлагаю еще одну тему посложнее.)
А>что будет после
А> int i=0;
А> ++i++;
А> cout<<" i = "<<i;

А>а если не будет то в чем проблема.)))



The result of the postfix increment or decrement operation is the value of the postfix-expression before the increment or decrement operator is applied. The type of the result is the same as that of the postfix-expression but is no longer an l-value. After the result is obtained, the value of the operand is incremented (or decremented).

Postfix increment and decrement has higher precedence than prefix increment and decrement operators.

Из всего вышенаписанного следует, что префиксная операция инкремента получает не l-value.
Re[5]: if ( i&&0x1)
От: Кодт Россия  
Дата: 10.06.04 10:24
Оценка:
Здравствуйте, Аноним, Вы писали:

А>что будет после

А> int i=0;
А> ++i++;
А> cout<<" i = "<<i;

А>а если не будет то в чем проблема.)))


Будет ошибка компиляции
в выражении ++i++ скобки расставляются так: ++(i++), а поскольку i++ это rvalue, то упс.

А если написать (++i)++, то это UB, хотя и с достаточно ожидаемым результатом: i+=2.
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.