![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Andy_L20066 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 10.3.2008 Репутация: нет Всего: 1 |
Привет,
решил спросить: нужно посчитать количество бит из значением '1' в байте. Сразу в голову приходит идея вот с такой вот штукой:
переменная b cоответственно постоянно сдвигается влево на определенное количество позиций и множится на число в котором ми ищем эти биты ну вот надо придумать что-то по оптимизации этого метода... что можете посоветовать? |
|||
|
||||
| lBugl |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 18.8.2009 Репутация: нет Всего: 2 |
может так:
В общем условие для выхода из цикла добавил, чтоб лишний раз не проверять оставшиеся нули. |
|||
|
||||
| Sadness |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 11.5.2008 Репутация: нет Всего: нет |
Integer#bitCount(int n); разве не тоже самое делает?
|
|||
|
||||
| Andy_L20066 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 10.3.2008 Репутация: нет Всего: 1 |
cпасибо Ibugl... ну да.. тут в принципе оно оптимизируется, поскольку проверок излишних не будет...
может есть еще какие-то варианты... может есть еще какой-то другой путь (алгоритм какой-то), мне просто интересно... Sadness, что значит 'Integer.bitCount' ??? |
|||
|
||||
| Sadness |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 11.5.2008 Репутация: нет Всего: нет |
Andy_L20066, bitCount метод класса Integer.
http://java.sun.com/j2se/1.5.0/docs/api/ja...l#bitCount(int) |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
... а если JDK < 1.5, то BigInteger.bitCount(). А велосипеды выкинуть. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |