[an error occurred while processing this directive] [an error occurred while processing this directive]
Я бы по-другому это сделал (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Беня 18 января 2002 г. 21:06
В ответ на: В формуле знаки попутал. Там + и - чередуются. А задачка то простая... отправлено abivan 18 января 2002 г. 20:44

2-байтовое целое - от 65535 до 0
всего 5 позиций. Нужно просто с помощью вычитания узнавать, что в каждой позиции ЖКИ показывать.
unsigned char pos_5 = 0 ; /* десятки тысяч */
unsigned char pos_4 = 0 ; /* тысячи */
unsigned char pos_3 = 0 ; /* сотни */
unsigned char pos_3 = 0 ; /* десятки */
unsigned char pos_1 = 0 ; /* единицы */
unsigned int value ; /* Ваше значение */

while( value >= 10000) { /* сколько в 5-й позиции - десятки тысяч */
pos_5 ++ ;
value -= 10000 ;
}
while( value >= 1000) {
pos_4 ++ ;
value -= 100 ;
}
while( value >= 100) {
pos_3 ++ ;
value -= 100 ;
}
while( value >= 10) {
pos_2 ++ ;
value -= 10 ;
}
pos_1 = value ;

У Вас будет 5 чисел, которые нужно показывать в 5-ти разрядах.
Можно не выводить нули слева - заменить из на пробелы(не 00123, а 123).



Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru