Unsigned char till hundratal tiotal ental #LÖST#

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
slatte
Inlägg: 420
Blev medlem: 1 april 2008, 16:05:17
Ort: Jönköping

Unsigned char till hundratal tiotal ental #LÖST#

Inlägg av slatte »

Ja problemet är precis som jag har skrivit. Jag har en unsigned char och vill få ut ental tiotal hundratal i tre olika variabler
om det hade varit en signed char hade det inte varit så svårt hade jag bara gjort typ såhär:

kompilator: Hi-Tech C

Kod: Markera allt

while(tal_temp >= 0)  
   {
      tal_temp = (tal_temp - 100);
      hundreds++;
   }
   hundreds--;
Men en unsigned char kan ju aldrig bli mindre än noll:
har ni något förslag på hur detta går att lösa, jag har funderat lite på om det går konvertera tal_temp till signed int
och sedan dela upp i hundratal osv. och konvertera int till unsigned char igen. men är detta möjligt hur?
Eller finns det något smidigare sätt?

hoppas någon har löst mitt lilla problem tidigare :)
Senast redigerad av slatte 23 februari 2009, 13:54:45, redigerad totalt 1 gång.
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Unsigned char till hundratal tiotal ental

Inlägg av Icecap »

Kod: Markera allt

char Digits[3];
char Counter;
Counter = 3;
while(Counter)
  {
  Counter--;
  Digits[Counter] = (Tal_Temp % 10) + '0';
  Tal_Temp /= 10;
  }
Då står de "rätt": Digits[0] = hundratal, Digits[1] = tiotal osv.
Användarvisningsbild
slatte
Inlägg: 420
Blev medlem: 1 april 2008, 16:05:17
Ort: Jönköping

Re: Unsigned char till hundratal tiotal ental

Inlägg av slatte »

Danke Icecap!

Nu fungerar det!
Bara det att jag fick skriva såhär:

Kod: Markera allt

while(counter)
   {
      counter--;
      digits[counter] = (tal_temp % 10); 
      tal_temp /= 10;  
   }
Jag vet inte riktigt vad (+ '0') gör, men nu fungerar det perfekt :-)

danke!!
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Unsigned char till hundratal tiotal ental

Inlägg av Icecap »

Aha... som jag skrev rutinen gav det ASCII-tecknet som motsvarade värdet, du vill ha 0, 1, 2, 3... och "mitt" sätt gav '0', '1', '2'...
Användarvisningsbild
slatte
Inlägg: 420
Blev medlem: 1 april 2008, 16:05:17
Ort: Jönköping

Re: Unsigned char till hundratal tiotal ental

Inlägg av slatte »

okidoke!
Då kopplar jag :-)
Skriv svar