Sida 1 av 1

dela upp unsigned int i C [LÖST]

Postat: 12 sep 2007, 10:35
av Pinky
Tja

I skolan har vi snickrat ihop egna sendChar och sendString funktioner att använda på nån liten bräda vi leker med, så att den skickar text till datorn via en terminal då.
Nu har vi fått i uppgift att göra en funktion som kan skicka siffror också, närmare bestämt unsigned int. Ramen till funktionen som vi fått ser ut såhär:

Kod: Markera allt

/***************************************************************
*
* Description: Blocking function that sends a number (32-bit
* integer) to UART channel #0.
*
* Parameters: value – 32-bit unsigned value to be printed
* noOfDigits – number of digits to actaully print
* (valid input: 1-10)
*
***************************************************************/
void
sendNumber(tU32 value, tU8 noOfDigits)
{
}
Denna ska i sin tur använda sig av våra gamla sendChar och/eller sendString, så vi behöver göra om inten till char eller string på nåt vis. Det enda logiska sät vi kan komma på att göra detta vore att dela upp inten siffra för siffra, lägga till 48, så att vi får det i ASCII och sedan skicka det till vår sendChar.
Vårt problem är just att dela upp den.
Förslag??

SV: dela upp unsigned int i C

Postat: 12 sep 2007, 11:05
av Lars
Operatorn % kan vara användbar.

SV: dela upp unsigned int i C

Postat: 12 sep 2007, 11:12
av gasol
Om ni har tillgång till sprintf så är det ju bara att skriva eran int till en sträng och sedan köra sendstring med den strängen.
Annars så får ni helt enkelt göra som du säger att ta ut varje siffra i 10-basen (modulo och delat) och lägga in i en sträng och skicka den, eller skicka tecken för tecken.

SV: dela upp unsigned int i C

Postat: 12 sep 2007, 12:00
av Pinky
Yes! % funkade fint! Modulo is the shit :) Tack!