169 похожих чатов

Интересная задачка: А кто-то игрался со степенями? Вот к примеру есть число

12345.
Хочу возвести его в квадрат.
12345×12345=152399025 умножить одно на другое было бы слишком просто.
Что если без умножения?
Тут попробовал поэкспериментировать и собрал из 9 команд код, который за 6 циклов¹ дал тот же ответ. И вот мне интересно, а можно ли ещё быстрее/меньше кода? (Ко всему пришёл методом тыка)
¹ количество циклов зависит от исходного числа.

25 ответов

28 просмотров

сдвиг битов?

Saenro- Автор вопроса
Ridli
сдвиг битов?

Не без этого

Saenro
Не без этого

А смысл? Процессор железом делает то же самое. Чуть более продвинутый вариант, точнее.

Saenro- Автор вопроса
s54820
А смысл? Процессор железом делает то же самое. Чут...

Зарядка для мозгов) Я несколько часов убил на решение и оптимизацию кода)

Saenro- Автор вопроса
Saenro
screenshot Левую часть чуть позже)

Вот он, код настоящего павука-капиталиста

Это как - кол-во циклов зависит от кода

Saenro
screenshot Левую часть чуть позже)

Это там что за интересный ebx, ebx Неужели mov ebx, ebx Действительно интрига

Алексей Шведов
Это как - кол-во циклов зависит от кода

Посчитай количество установленных битов в 12345.

Saenro- Автор вопроса
s54820
test там.

Ну хоть тут в команде не угадал) хотя смысл тот же)

Saenro
и всё ты знаешь)

А ещё я знаю, что 12345 * 0 = как повезёт.

Saenro- Автор вопроса
Aleksandr
popcnt

Это для одного цикла и тут такой номер не прокатит

Saenro- Автор вопроса
Алексей Шведов
Понял. Интересно, ща тоже попробую

Если получится меньше 9 команд, ты об этом скажи, но код не выкладывай.

Saenro- Автор вопроса
Saenro- Автор вопроса
s54820
А esi кто обнулять будет?

И действительно, там мусор... Но почему я его раньше не замечал...

Saenro
И действительно, там мусор... Но почему я его рань...

я только знаю как числа кратные степени двойки в степень возводить типа 8x8 это shl eax, 3 а тут магия какая то :)

Saenro- Автор вопроса
Saenro- Автор вопроса
Денис Фомин Fomin
а код не покажешь? :)

Но вверху надо бы esi обнулить. А в ebx можно другой множитель ставить.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта