Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

zamiana tablicy z elementami char na tablice z elementami int

29 Sty 2013 18:54 2544 9
  • Poziom 14  
    Witam, jakim sposobem najlepiej przekonwertować znaki w tablicy char w której sa zakodowane liczby dwucyfrowe na tablicę z wartościami uint8_t?
  • Poziom 39  
    wojtektorr napisał:
    Witam, jakim sposobem najlepiej przekonwertować znaki w tablicy char w której sa zakodowane liczby dwucyfrowe na tablicę z wartościami uint8_t?
    A nie lepiej zostawić taką tablicę i rzutować wartość wybranego pola na uint8_t bezpośrednio podczas żądanej operacji?

    Kod: c
    Zaloguj się, aby zobaczyć kod
  • Moderator Mikrokontrolery Projektowanie
    wojtektorr napisał:
    Witam, jakim sposobem najlepiej przekonwertować znaki w tablicy char w której sa zakodowane liczby dwucyfrowe na tablicę z wartościami uint8_t?


    A jak te liczby są kodowane? Jako para znaków ASCII? Jeśli tak to przepisać je do łańcucha 3-elementowego, z którego ostatni to NULL i potem atoi, czy coś w tym stylu, albo wprost (znak[x]-'0')*10+znak[x+1]-'0'.
  • Specjalista - Mikrokontrolery
    Zgaduję, że chodzi Ci o czytanie liczb z postaci znakowej. Jeśli dziesiętnie, to:

    liczba[i] = (cyfra[i << 1] - '0') * 10 + cyfra[(i << 1) + 1] - '0';
  • Poziom 39  
    tmf napisał:
    Jako para znaków ASCII?
    IMHO: typ Char nie pomieści 2 znaków ASCII :)
    Ja wiem, że może masz rację ale kolega napisał dokładnie:
    wojtektorr napisał:
    znaki w tablicy char
  • Poziom 39  
    wojtektorr napisał:
    ... znaki w tablicy char w której sa zakodowane liczby dwucyfrowe ...

    A może chodzi o BCD :?:
  • Poziom 39  
    zumek napisał:
    A może chodzi o BCD
    Trudno się domyśleć, dopóki autor nie potwierdzi :)
    Prawda?
    A więc - autorze?
  • Poziom 14  
    Od początku...:) Z jednego procesora przez RS232 wysyłane są wartości liczbowe do drugiego taka funkcją:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    Jak widać tutaj parametrem funkcji jest wartość char a wstawiam wartość int. Po odebraniu znaki wrzucam do tablicy którą muszę z powrotem zamienić na int. Chcę otrzymać to co przed wysyłką. Chyba teraz już wiadomo o co chodzi :)
  • Poziom 39  
    wojtektorr napisał:
    Jak widać tutaj parametrem funkcji jest wartość char a wstawiam wartość int. Po odebraniu znaki wrzucam do tablicy którą muszę z powrotem zamienić na int. Chcę otrzymać to co przed wysyłką. Chyba teraz już wiadomo o co chodzi

    Jednym słowem "RZUTOWANIE". Kompilator może nie traktować użycia char i uint8_t zamiennie jako błąd, ale dobrym zwyczajem jest rzutowanie, aby nie było nawet warningów.
  • Poziom 14  
    Dzięki za szybką reakcję chodziło o rzutowanie:)