![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Nuzur |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 4.7.2004 Репутация: нет Всего: 5 |
А ка проверить число на ченость, есть такая функция, мол четное число или нет.
-------------------- Never again... |
|||
|
||||
NiJazz |
|
|||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: 1 Всего: 23 |
Nuzur
Чётное - если делится на 2. ![]()
|
|||
|
||||
Nuzur |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 4.7.2004 Репутация: нет Всего: 5 |
Спасибо, плюсик не могу поставить
![]() -------------------- Never again... |
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 3 Всего: 172 |
Поставил.
-------------------- |
|||
|
||||
bel_nikita |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
Если оно (число) целое, то просто проверить самый первый бит
![]()
З.Ы.:
![]() ![]() Это сообщение отредактировал(а) bel_nikita - 22.12.2004, 23:36 |
||||||
|
|||||||
NiJazz |
|
|||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: 1 Всего: 23 |
Странно, если, например, разложить число 23, то получится такой вид: 10111. И где тут чётность?
|
|||
|
||||
Fazil6 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
правый бит 1 => нечетный если 0 - четный |
|||
|
||||
ptr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 661 Регистрация: 31.5.2006 Где: Новосибирск Репутация: 1 Всего: 14 |
А если у меня процессор не с двоичной логикой, а с троичной? -------------------- Единственный способ определить границы возможного - это выйти за эти границы, в невозможное. Артур Кларк. |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Сдай его в музей ![]() По идее там чтото вроде проверки последнего значения на 1 (тогда нечётный). Но операции & что там дадут? Вообще процессоры у нас вроде с четвероичной логикой: true false undefined buss error Добавлено @ 11:38 Хотя undefined может и не учитываться.. |
|||
|
||||
Fazil6 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
проверку и дадут |
|||
|
||||
CatOleg |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 14.7.2005 Где: Запорожье Репутация: нет Всего: нет |
if( value % 2 )
{ value -> нечетное } else { value -> четное } |
|||
|
||||
Kostt |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 169 Регистрация: 8.1.2006 Где: Томск Репутация: 1 Всего: 3 |
!(value & 1) - сработает быстрее, чем value % 2, и ни чем не хуже
|
|||
|
||||
ptr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 661 Регистрация: 31.5.2006 Где: Новосибирск Репутация: 1 Всего: 14 |
С двузначной логикой: true (1) и false (0). undefined и buss error не относятся к логике процессора. Зато с (value%2==0) понятнее что делается, да и не особо медленне чем c (value&1). Это сообщение отредактировал(а) ptr - 21.7.2006, 13:22 -------------------- Единственный способ определить границы возможного - это выйти за эти границы, в невозможное. Артур Кларк. |
|||
|
||||
sergejzr |
|
||||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
На 32 битном процессоре мрдленнее в 32 раза ![]()
Относятся конечно. На undefined он кладёт, но ошибки он должен логически обрабатывать(что будет, если на бусе одновременно 1 и 0 ?). Это же обыкновенный микрочип. Просто доступа к тий логике у программиста нет. Она на аппаратном уровне. |
||||
|
|||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 3 Всего: 106 |
модуль(%) - есть ни что иное, как арифметическое умножение на логарифм правой части выражения по основанию 2, так что операции (% 2) и (& 1) равнозначны, а самый младший бит является признаком нечетного числа (его еще называют parity), т.к. он инвертируется на каждый экземпляр последовательного числового ряда.
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |