@acuruma

Как перевести строку в число в ассемблере?

У меня появились 2 задачи: мне нужно сделать алгоритм, который переводит строку в число и еще один алгоритм, который работает наоборот, я без понятия как это вообще сделать. Можете дать алгоритм в общих чертах по переводу строки в число (обратно сам разберусь), имею ввиду без кода? Буду благодарен.
  • Вопрос задан
  • 132 просмотра
Решения вопроса 3
@bacon
окей гугл, "Как перевести строку в число в ассемблере"
Ответ написан
wataru
@wataru Куратор тега Алгоритмы
Разработчик на С++, экс-олимпиадник.
Сначала напишите алгоритм на каком-нибудь высоком языке программирования, или хотя бы в псевдокоде. Потом аккуратно переведите в ассемблер.

Надо уметь только делить с остатком и умножать на 10. Как перевести 1234 в строку? Можно взять последнюю цифру - осток от деления на 10. Вот вы получили цифру 4. В строке это будет символ "4", или байт со значением 0x34. Вообще, для получения символа по цифре - надо прибавить 0x30. Это мы взяли остаток, а вот результат деления - 123. Можно продолжить перевод так же и мы получим символы в обратном порядке.

Итак, пока число не 0, делим нацело на 10. Остаток приписываем в ответ переводя в символ. В конце разворачиваем строку.

Перевод же из строки в число делается проще - идем циклом по строке, умножаем переменную на 10 и прибавляем тукущую цифру.
Ответ написан
Комментировать
@mayton2019
Bigdata Engineer
Безотносительно ассемблера. Это каноническая задача которую решают на 1 уроке информатики.
Да был такой предмет когда-то. Допустим я-бы не знал готовой функции перевода. Но можно
наверное написать свою функцию. Понадобиться ассемблерная операция деления+нахождения остатка.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы