Перейти к содержанию
    

Нужен алгоритм перевода числа в строку для AVR

Товарищи,

нужно 32-х разрядное число перевести в строку. А в AVR даже команды деления нету ;) Как быть-то ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Товарищи,

нужно 32-х разрядное число перевести в строку. А в AVR даже команды деления нету ;) Как быть-то ?

A написать свой алгоритм можно?

 

Нужен цикл, сдвиг и сложение...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

нужно 32-х разрядное число перевести в строку. А в AVR даже команды деления нету
itoa()

itoa()

Изменено пользователем blackfin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как быть-то ?
Поищите в разделе OffTopic тему, отделенную от сравнения 51 и AVR. На ней вчера-позавчера приводилось несколько вариантов. Возможно, там было не 32 бита, но поняв идею вы сможете переделать как вам надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Товарищи,

нужно 32-х разрядное число перевести в строку. А в AVR даже команды деления нету ;) Как быть-то ?

 

Умножением. Умножаешь на 2 в цикле 32 раза (сдвигами). Левый разряд, попадающий в флаг переноса, переносишь в младший разряд двоично-десятичного числа (изначально обнулённого), 10-разрядного (нужно 5 байт для представления). Да, перед сдвигом двоичного числа, двоично-десятичное тоже нужно сдвинуть на один разряд влево. Это оптимальный алгоритм для CPU без команды деления.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Умножаешь на 2 в цикле 32 раза (сдвигами). Левый разряд, попадающий в флаг переноса, переносишь в младший разряд двоично-десятичного числа (изначально обнулённого), 10-разрядного (нужно 5 байт для представления).
Таким образом скопируем 10 разрядов исходного числа в результат. Что-то пропущено в середине ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...