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 1284 6
REKLAMA
  • #1 15874745
    dasej
    Poziom 32  
    Posty: 1911
    Pomógł: 165
    Ocena: 268
    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  
    Posty: 5502
    Pomógł: 739
    Ocena: 657
    Możesz użyć funkcji itoa. Wymagana biblioteka stdlib.h
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #3 15874884
    tronics
    Poziom 38  
    Posty: 5082
    Pomógł: 359
    Ocena: 845
    @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  
  • REKLAMA
  • #5 15874921
    tronics
    Poziom 38  
    Posty: 5082
    Pomógł: 359
    Ocena: 845
    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.
  • #6 15874982
    dasej
    Poziom 32  
    Posty: 1911
    Pomógł: 165
    Ocena: 268
    @Piotrus_999

    A jak zamienić to na jedno polecenie?
  • #7 15875002
    Konto nie istnieje
    Konto nie istnieje  

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik poszukiwał sposobu na konwersję typu unsigned char na format hex w typie unsigned char, z przykładami konwersji takich jak 1 na 01, 10 na 0A, oraz 255 na FF. Odpowiedzi sugerowały użycie funkcji itoa z biblioteki stdlib.h, a także alternatywne metody konwersji, takie jak wykorzystanie tablicy znaków hex oraz operacji bitowych do rozdzielenia nibble. Proponowano również stworzenie funkcji WriteHex do wyświetlania wartości hex na wyświetlaczu HD44780.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA