![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
priam220 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 4.6.2010 Репутация: 7 Всего: 8 |
Не совсем понятно
a) метод возвращает 1, 2 либо число кратное степеням двойки (2, 4, 8). Это как то не сочитается с ее описанием:
b) как можно еще использоваться этот странный метод (кроме проверки четности, как выяснилось). |
|||
|
||||
Дрон |
|
||||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 6 Всего: 93 |
priam220,
Это правильно, ведь в описании сказано, что возвращается число либо с одним битом, установленным в 1, либо число 0. А один включенный бит выглядит в десятичной виде как число кратное степени двойки. Например: 00010000 это 16; 00000010 это 2.
Как хотите ![]() Если хочется получить индекс первого включенного бита, а не его значение, то есть метод numberOfTrailingZeros Добавлено через 2 минуты и 41 секунду Кстати, не совсем понятно что за "проверка чётности" имеется ввиду. Это сообщение отредактировал(а) Дрон - 25.8.2011, 17:19 -------------------- Да. Именно так. |
||||
|
|||||
priam220 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 4.6.2010 Репутация: 7 Всего: 8 |
тут была тема, там подкинули такую идею, по поводу проверки четности.
так вроде ж не просто бит, а крайне правый бит... А какой крайне правый бит в еденицу у 16? Плюс метод называется lowestOneBit... Я бы хотел получать значение 0/1 от такого метода, разве не логично? Как хотите это конечно правильно. Только что б захотеть, надо еще догадаться. ![]() Это сообщение отредактировал(а) priam220 - 25.8.2011, 17:38 |
|||
|
||||
Nofate |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 266 Регистрация: 13.10.2008 Репутация: 4 Всего: 8 |
Там чистым английским языком написано, что возвращается число, которое содержит всего один бит, установленный в единицу (остальные биты - нули), соответствующий самому правому биту, установленному в единицу в передаваемом аргументе.
Если бы функция возвращала просто младший бит, назвалась бы lowestBit ) Только его итак легко получить в виде остатка от деления на 2 (т.е. x%2) А этой функция очень полезна при всевозможных операциях, связанных с битовыми полями. Например, вы в виде значения типа 01011100 храните набор флагов, каждый флаг соответствует какому-то действию или состоянию, и среди них приоритет имеет самый младший включенный флаг. - Еще таким образом можно определять, делится ли число на 2, 4, 8, 16 и т.д. - На четность проще проверять как раз остатком от деления на 2. Но при помощи этой функции можно определить как четные все числа , для которых lowestOneBit(x) <> 1 Это сообщение отредактировал(а) Nofate - 25.8.2011, 19:51 -------------------- The future is not set, there is no fate but what we make for ourselves. Нофейтово пространство и смежные области |
|||
|
||||
priam220 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 4.6.2010 Репутация: 7 Всего: 8 |
К сожалению, не у всех так хорошо с чистым английским. Спасибо, понял.
А почему лучше? Это сообщение отредактировал(а) priam220 - 25.8.2011, 20:18 |
|||
|
||||
jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 40 Всего: 75 |
Потому что очевиднее. Вариант с lowestOneBit() эффективнее, но в сколько-нибудь большом проекте читаемость и очевидность кода куда важнее. -------------------- Opinions are like assholes — everybody has one |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |