logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Atmega328] [Atmega328][C] - Jak przekonwertować unsigned char na hex w typie unsigned char?

dasej 17 Sie 2016 21:02 1230 6
REKLAMA
  • #1 15874745
    dasej
    Poziom 32  
    Witam.

    Szukam rozwiązania jak napisać krótką i szybką konwersję unsigned char na hex, tak by odpowiedź byłaby w typie unsigned char.
    np.

    1 > 01
    10 > 0A
    255 > FF

    Forma użycia np.

    fragment z kodu obsługi wyświetlacz HD44780
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Nie wiem czy dobrze przedstawiłem swój problem. Jeżeli nie to udzielę wszelkich odpowiedź.

    Pozdrawiam
    Janusz
  • REKLAMA
  • #2 15874753
    excray
    Poziom 41  
    Możesz użyć funkcji itoa. Wymagana biblioteka stdlib.h
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #3 15874884
    tronics
    Poziom 38  
    @excray - dokładnie tak, przy czym dla unsigned char hex ma dwa znaki więc bufor nie musi zajmować aż tyle. Dodatkowo nie wiem czy zero z przodu będzie wyświetlane przy itoa; jeśli koniecznie ma być to chyba będzie łatwiej zrobić const char 16 elementową ze znakami i konwersję poprzez /16 i %16 (gdzie uzyskana cyfra to adres komórki z tablicy)
  • REKLAMA
  • #4 15874904
    Konto nie istnieje
    Konto nie istnieje  
  • #5 15874921
    tronics
    Poziom 38  
    Cytat:
    Jezeli to jedyna konwersja to zdecydowanie tak

    Rzeczywiście, późno i mózgownica nie pracuje tak dobrze jak zwykle... przecież to dwa nibble i można je łatwiej w ten sposób rozdzielić. Zakładając, że to rzeczywiście tylko i wyłącznie unsigned char jest konwertowany to koszt implementacji rozwiązania Piotrus_999 będzie chyba najniższy pod kątem wygenerowanego kodu.
  • REKLAMA
  • #7 15875002
    Konto nie istnieje
    Konto nie istnieje  
REKLAMA