Показать сообщение отдельно
Старый 27.03.2019, 17:08   #2
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: проебразование BCD-ASCII

Цитата:
Сообщение от VaBo Посмотреть сообщение
Коллеги, кто-то делал подобное?
Поясню, на входе имеем INT 32746 (к примеру), на выходе желаю получить 3,2,7,4,6 в разных регистрах. Это не ASCII, конечно, но, думаю, понятно.
На С за 5 минут наваял бы, на FBD начал было, но прикинул сколько циклов это должно занять и погрустнел.
Может какой алгоритм похитрее есть (вроде что-то припоминается, но не нашел)?

Для чего - на экране нужно выводить число крупными красивыми цифрами, стандартые шрифты больно корявые, хочу картинками.
Какие, нафиг, циклы))

32746 делите на 10000, получаете первую цифру. Умножаете её на 10000 и вычитаете из исходного числа.

Далее 1000, 100, 10. Все 5 цифр ваши. От С не отличается абсолютно ничем даже по количеству операций. Разве что в С можно пригрузить процессор ненужным циклом и лишним умножением.


PS. BCD - это совсем другая штука.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием