Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как определить - является ли число степенью 2?
|
|||
|---|---|---|---|
|
#18+
И если нет, то найти ближайшее целое, являющееся степенью 2? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2018, 18:00 |
|
||
|
Как определить - является ли число степенью 2?
|
|||
|---|---|---|---|
|
#18+
ЕМНИП Код: sql 1. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2018, 18:08 |
|
||
|
Как определить - является ли число степенью 2?
|
|||
|---|---|---|---|
|
#18+
Ролг Хупин, Возьмите логарифм по основанию два и будет вам счатье ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2018, 18:08 |
|
||
|
Как определить - является ли число степенью 2?
|
|||
|---|---|---|---|
|
#18+
blonduserРолг Хупин, Возьмите логарифм по основанию два и будет вам счатье Вам счастье, а процессору жопа в виде расчета логарифма. Ролг Хупин, задачу поподробней опиши. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2018, 20:10 |
|
||
|
Как определить - является ли число степенью 2?
|
|||
|---|---|---|---|
|
#18+
Ролг Хупин, В книге Генри Уоррена описано большинство целочисленных трюков арифметики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2018, 20:23 |
|
||
|
Как определить - является ли число степенью 2?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovЕМНИП Код: sql 1. Ну почти )) Как-то так (только для беззнаковых): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2018, 20:45 |
|
||
|
Как определить - является ли число степенью 2?
|
|||
|---|---|---|---|
|
#18+
Степени двойки, это все числа у которых установлен только один бит: 1 = 2^0 (00000001b) 2 = 2^1 (00000010b) 4 = 2^2 (00000100b) 8 = 2^3 (00001000b) 16 = 2^4 (00010000b) 32 = 2^5 (00100000b) 64 = 2^6 (01000000b) и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2018, 21:17 |
|
||
|
Как определить - является ли число степенью 2?
|
|||
|---|---|---|---|
|
#18+
Проверять битики - это играть по правилам регистровой арифметики CPU. Вот вариант для символьных вычислений. Код: javascript 1. 2. 3. 4. 5. 6. Код: javascript 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 00:17 |
|
||
|
Как определить - является ли число степенью 2?
|
|||
|---|---|---|---|
|
#18+
Dima TblonduserРолг Хупин, Возьмите логарифм по основанию два и будет вам счатье Вам счастье, а процессору жопа в виде расчета логарифма. Ролг Хупин, задачу поподробней опиши. Прикручиваю логгер, там есть параметр - размер очереди, он должен быть, по утверждению автора, степенью 2. Но параметр передаеся юзером, и я хочу определить, если не тсепень двойки, то дотянуть до ближайшего числа степени двойик и подкорректировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 10:42 |
|
||
|
Как определить - является ли число степенью 2?
|
|||
|---|---|---|---|
|
#18+
Проверка положительного числа на степень двойки Код: plaintext 1. Для поиска ближайшего большего если производительность не критична Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 11:27 |
|
||
|
Как определить - является ли число степенью 2?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyКак-то так (только для беззнаковых): Код: plaintext 1. 2. 3. 4. n != 0 тут лишнее, т.к. 0 & -1 == 0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 11:38 |
|
||
|
Как определить - является ли число степенью 2?
|
|||
|---|---|---|---|
|
#18+
Dima TAnatoly MoskovskyКак-то так (только для беззнаковых): Код: plaintext 1. 2. 3. 4. n != 0 тут лишнее, т.к. 0 & -1 == 0 Извиняюсь, затупил, 0 это ведь не степень двойки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 11:39 |
|
||
|
Как определить - является ли число степенью 2?
|
|||
|---|---|---|---|
|
#18+
Dima T0 это ведь не степень двойки Ну в каком-то смысле иногда 0 можно считать степенью 2, просто оно дробное и в целом представлении дает 0 (точное значение 0.5) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 11:46 |
|
||
|
Как определить - является ли число степенью 2?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 12:25 |
|
||
|
Как определить - является ли число степенью 2?
|
|||
|---|---|---|---|
|
#18+
Dima TПроверка положительного числа на степень двойки Код: plaintext 1. Для поиска ближайшего большего если производительность не критична Код: plaintext 1. 2. Не думаю, что производительность просядет на этом коде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 13:57 |
|
||
|
Как определить - является ли число степенью 2?
|
|||
|---|---|---|---|
|
#18+
Нашел побыстрее алгоритм Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Взято тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 14:36 |
|
||
|
Как определить - является ли число степенью 2?
|
|||
|---|---|---|---|
|
#18+
Ролг ХупинИ если нет, то найти ближайшее целое, являющееся степенью 2? В бинарном представлении числа должна быть только одна бинарная единица. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 14:48 |
|
||
|
Как определить - является ли число степенью 2?
|
|||
|---|---|---|---|
|
#18+
MasterZivРолг ХупинИ если нет, то найти ближайшее целое, являющееся степенью 2? В бинарном представлении числа должна быть только одна бинарная единица. Код: plaintext 1. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 15:38 |
|
||
|
Как определить - является ли число степенью 2?
|
|||
|---|---|---|---|
|
#18+
MasterZivВ бинарном представлении числа должна быть только одна бинарная единица.Это у целого числа, являющегося степенью двойки, а если в целом больше одного установленного бита, то процедура нахождения ближайшего не на много сложнее - если сразу за самым старшим, установленным в 1 битом, в сторону более младших разрядов следует 1, то надо маскировать все младшие биты и результат сдвинуть влево на один, а если следует 0, то просто маскировать все младшие биты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 15:39 |
|
||
|
Как определить - является ли число степенью 2?
|
|||
|---|---|---|---|
|
#18+
Ролг Хупин...то найти ближайшее целое, являющееся степенью 2? Создаем массив целых, большой... [INT_MAX] (т.е. 0..2147483647) Заполняем его по принципу: если индекс равен степени двойки - заносим в элемент с этим индексом значение индекса, иначе - заносим ближайшее, равное степени двойки (просто смотрим, какая из двух соседних степеней "ближе"). Это на первом этапе не очень быстро, да. Зато потом любое число определяется волшебным способом, просто вытаскиванием из массива по индексу, равному тестируемому числу... главное - чтобы памяти хватило... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 15:50 |
|
||
|
Как определить - является ли число степенью 2?
|
|||
|---|---|---|---|
|
#18+
rdb_devMasterZivВ бинарном представлении числа должна быть только одна бинарная единица.Это у целого числа, являющегося степенью двойки, а если в целом больше одного установленного бита, то процедура нахождения ближайшего не на много сложнее - если сразу за самым старшим, установленным в 1 битом, в сторону более младших разрядов следует 1, то надо маскировать все младшие биты и результат сдвинуть влево на один, а если следует 0, то просто маскировать все младшие биты. Это понятно, тут проблема маску получить для конкретного числа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 15:51 |
|
||
|
Как определить - является ли число степенью 2?
|
|||
|---|---|---|---|
|
#18+
КотовасияСоздаем массив целых, большой... [INT_MAX] (т.е. 0..2147483647) ... главное - чтобы памяти хватило... :) 8 Гб под это безобразие ... мдя ... И не факт что будет быстрее чем эти 5 действий 21336940 , т.к. обращение к памяти отсутствующей в кэше проца достаточно много времени занимает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 15:56 |
|
||
|
Как определить - является ли число степенью 2?
|
|||
|---|---|---|---|
|
#18+
Dima TЭто понятно, тут проблема маску получить для конкретного числа.Что же ты за программист, если такая элементарная задача, как получение маски сдвигом, для тебя - проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 17:15 |
|
||
|
Как определить - является ли число степенью 2?
|
|||
|---|---|---|---|
|
#18+
КотовасияРолг Хупин...то найти ближайшее целое, являющееся степенью 2? Создаем массив целых, большой... [INT_MAX] (т.е. 0..2147483647) Заполняем его по принципу: если индекс равен степени двойки - заносим в элемент с этим индексом значение индекса, иначе - заносим ближайшее, равное степени двойки (просто смотрим, какая из двух соседних степеней "ближе"). Это на первом этапе не очень быстро, да. Зато потом любое число определяется волшебным способом, просто вытаскиванием из массива по индексу, равному тестируемому числу... главное - чтобы памяти хватило... :) данунафиг ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 18:48 |
|
||
|
Как определить - является ли число степенью 2?
|
|||
|---|---|---|---|
|
#18+
rdb_devDima TЭто понятно, тут проблема маску получить для конкретного числа.Что же ты за программист, если такая элементарная задача, как получение маски сдвигом, для тебя - проблема? Да, хреновый программист, знал что можно получить результат в 5 действий для 32-х битного числа, но не смог придумать как. Гуглить пришлось 21336940 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 19:56 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39629493&tid=2017887]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
68ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 174ms |

| 0 / 0 |
