caute,
neviete mi poradiť ako mám prekonvertovať hodnotu typu uint8_t na char? resp. ideálne na int. Ale char na int viem pomocou atoi.
diky
prekonvertovanie uint8_t na char
Moderátori: psichac, Moderátori
Re: prekonvertovanie uint8_t na char
nie pre Keil, programujem STM32F4 - AVR, a potrebujem zo seriovky previesť hodnotu do int. data ktore prichadzaju zo seriovky sú typu uint8_t
0
Re: prekonvertovanie uint8_t na char
Jak je ten uint8_t deklarovanej ? Není to náhodou unsigned int ?
0
-
- Ultimate člen
- Príspevky: 2328
- Dátum registrácie: 25 Jún 2013, 21:06
- Bydlisko: Krajné
- Vek: 57
- Kontaktovať používateľa:
Re: prekonvertovanie uint8_t na char
Pokiaľ nebudeš rozumieť a správne používať základné pojmy asi ti nikto neporadí, lebo:
- prekonvertovať uint8_t na char je viac menej zbytočné. Lebo uint8_t je unsigned char a konverzia na char nie je nijako potrebná. iba sa v jednom prípade číslo považuje v rozsahu 0 - 255 a v druhom -128 až 127. Premenná v oboch prípadoch zaberá jeden byte.
- čo je to sériovka? taký datový typ C nepozná. To je pravdepodobne kus hw. Data ktoré prichádzajú zo sériového kanála sú práve char (alebo unsigned char).
- atoi neprevádza char na int, ale reťazec ASCII znakov na int. https://www.tutorialspoint.com/c_standa ... n_atoi.htm
Tá hviezdička v type dosť zásadne mení situáciu.The C library function int atoi(const char *str) converts the string argument str to an integer (type int). - Na základe tejto chybnej predstavy si položil úplne nelogickú otázku
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.
Re: prekonvertovanie uint8_t na char
V pripade ze chces naozaj len (char) a nie (char*):
Ak by si chcel retazec tak:
Kód: Vybrať všetko
uint8_t cislo=4;
char znak;
znak=(char)(cislo+48);
Kód: Vybrať všetko
uint8_t cislo=255;
char* retazec[3];
sprintf(retazec,"%d",cislo);
0
They say the world is turning
But we are stuck upside down...
But we are stuck upside down...