Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

извличане на цифри от число
http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=5477
Страница 1 от 1

Автор:  mash [ Нед Фев 17, 2008 11:35 am ]
Заглавие:  извличане на цифри от число

Здравейте !
Налага ми се да изведа на 3 седем сигментни индикатора получено число от дадено изчисление (примерно 123).
Индикацията е динамична и за съжаление цифрите на числото се извеждат една по една :( Но как става на С?

Автор:  milenjs [ Нед Фев 17, 2008 11:43 am ]
Заглавие: 

Ами най-тъпо и разточително става с хвърлянето му в стрингов масив с sprintf... вероятно има и по-елегантни начини но в неделя сутринта ;)

Автор:  Zeus [ Нед Фев 17, 2008 5:32 pm ]
Заглавие: 

Погледни функцията DIV() в хелпа


Requires:
#include <STDLIB.H>

Examples:
div_t idiv;
ldiv_t lidiv;

idiv=div(3,2); // idiv will contain quot=1 and rem=1
lidiv=ldiv(300,250); //lidiv will contain quot=1 and rem=50

Автор:  woody [ Нед Фев 17, 2008 5:41 pm ]
Заглавие: 

Код:
int num;
int d[3];

// ...

for ( ; ; ) {
    num = ..........;    // число за показване

    d[0] = num % 10;    // най-малозначна цифра, 10^0
    num /= 10;
    d[1] = num % 10;    // 10^1
    num /= 10;
    d[2] = num % 10;    // 10^2

    // ...
}


Ако не схващаш идеята, значи си проспал младините твърде лошо.
При желание за база различна от 10 - очевидно е какво се променя.
Ако пък те избива на оптимизиране - виж библиотечната функция div() която съчетава деление/модул.

При бол памет в контролера може да минеш и кротко със:
Код:
int num;
char d[4];

// ...

snprintf (d, 4, "%u", num);

Автор:  mash [ Нед Фев 17, 2008 6:46 pm ]
Заглавие: 

[quote="woody"]
Код:
int num;
int d[3];

// ...

for ( ; ; ) {
    num = ..........;    // число за показване

    d[0] = num % 10;    // най-малозначна цифра, 10^0
    num /= 10;
    d[1] = num % 10;    // 10^1
    num /= 10;
    d[2] = num % 10;    // 10^2

    // ...
}


Супер !
Къде беше до сега , че цял ден се мъча като грешен дявол :)
Мерси много това ми реши проблема !!!
Имаш една виртуална бира ;)

Автор:  woody [ Нед Фев 17, 2008 6:54 pm ]
Заглавие: 

mash написа:
Къде беше до сега , че цял ден се мъча като грешен дявол :)


Кацнах преди малко на родна земя. :D

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/