Svetelektro.com

Svetelektro.com

Meno:
Heslo:
SVETELEKTRO • prekonvertovanie uint8_t na char

prekonvertovanie uint8_t na char

C,C++,C#

Moderátori: psichac, Moderátori

prekonvertovanie uint8_t na char

Odoslaťod nomat » 25 Nov 2016, 17:41

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 :)
nomat
Okoloidúci
Okoloidúci
Príspevky: 21
Založený: 17.04.2013
Karma: 0

Re: prekonvertovanie uint8_t na char

Odoslaťod Sender » 25 Nov 2016, 18:00

T je pro AVR studio ?
Co je cílem ?
Sender
Obrázok používateľa
Pokročilý člen
Pokročilý člen
Príspevky: 535
Založený: 26.05.2008
Karma: 1

Re: prekonvertovanie uint8_t na char

Odoslaťod nomat » 25 Nov 2016, 18:04

nie pre Keil, programujem STM32F4 - AVR, a potrebujem zo seriovky previesť hodnotu do int. data ktore prichadzaju zo seriovky sú typu uint8_t
nomat
Okoloidúci
Okoloidúci
Príspevky: 21
Založený: 17.04.2013
Karma: 0

Re: prekonvertovanie uint8_t na char

Odoslaťod Sender » 25 Nov 2016, 18:07

Jak je ten uint8_t deklarovanej ? Není to náhodou unsigned int ?
Sender
Obrázok používateľa
Pokročilý člen
Pokročilý člen
Príspevky: 535
Založený: 26.05.2008
Karma: 1

Re: prekonvertovanie uint8_t na char

Odoslaťod martin63 » 25 Nov 2016, 18:46

nie, je to unsigned char
martin63
Obrázok používateľa
Ultimate člen
Ultimate člen
Príspevky: 1681
Vek: 28.32
Založený: 11.05.2008
Bydlisko: Námestovo
Karma: 12

Re: prekonvertovanie uint8_t na char

Odoslaťod peterple » 25 Nov 2016, 20:31

Pokiaľ nebudeš rozumieť a správne používať základné pojmy asi ti nikto neporadí, lebo:
  1. 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.
  2. č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).
  3. atoi neprevádza char na int, ale reťazec ASCII znakov na int. https://www.tutorialspoint.com/c_standard_library/c_function_atoi.htm
    The C library function int atoi(const char *str) converts the string argument str to an integer (type int).

    Tá hviezdička v type dosť zásadne mení situáciu.
  4. Na základe tejto chybnej predstavy si položil úplne nelogickú otázku

A áno, je to naozaj smiešne. Dosť si ma touto otázkou pobavil.
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.
peterple
Ultimate člen
Ultimate člen
Príspevky: 1661
Vek: 51.4
Založený: 25.06.2013
Bydlisko: Krajné
Karma: 45

Re: prekonvertovanie uint8_t na char

Odoslaťod Mishung » 03 Mar 2017, 09:31

V pripade ze chces naozaj len (char) a nie (char*):

Kód: Vybrať všetko
uint8_t cislo=4;
char znak;

znak=(char)(cislo+48);


Ak by si chcel retazec tak:

Kód: Vybrať všetko
uint8_t cislo=255;
char* retazec[3];

sprintf(retazec,"%d",cislo);
They say the world is turning
But we are stuck upside down...
Mishung
Obrázok používateľa
Stály člen
Stály člen
Príspevky: 443
Vek: 26.12
Založený: 01.12.2009
Bydlisko: Banská Bystrica
Karma: 12


Naspäť na C,C++,C#

Kto je prítomný

Užívatelia prezerajúci si toto fórum: Žiadny registrovaný používateľ a 0 hostí.

Forums ©
Autor stránky je Ondrej Závodský(zawin), o graficky design sa stará Ľuboš Fabo(BUFU).

TOPlist

Powered by Copyright © UNITED-NUKE CMS. All Rights Reserved.
Čas potrebný k spracovaniu stránky 0.43 sekúnd