Arduino Polska Forum
Zamiana hex na int - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica)
+--- Wątek: Zamiana hex na int (/watek-zamiana-hex-na-int)



Zamiana hex na int - RPjS - 14-11-2021

Witam chciałbym zamienić dwa chary na int z znakiem ale cokolwiek bym nie zrobił to wychodzi mi wartość dodatnia.

Na stronie Arduino jest napisane.
Cytat:On the Arduino Uno (and other ATmega based boards) an int stores a 16-bit (2-byte) value. This yields a range of -32,768 to 32,767

Co daje mi wyniki poza zakresem jakby arduino traktowało tą zmienną jako const int.

Program
Kod:
int zmienna =-1;
    Serial.println(zmienna);
    zmienna=0xFFFF;
    Serial.println(zmienna);
    char a1 =0xFF;
    char a2 =0xFF;
    zmienna= a1;
    zmienna<<=8;
    zmienna+=a2;
    Serial.println(zmienna);

Wynik 
Kod:
-1                                                                             
65535                                                                          
65535


Więc jak przekonwertować 2 chary na int z znakiem?


RE: Zamiana hex na int - kaczakat - 15-11-2021

Nie zawsze inty mają taki zakres. Używasz ESP8266 lub innego 32 bitowego uC? Chcesz mieć pewność co do zmiennej użyj typu uint16_t lub int16_t.


RE: Zamiana hex na int - RPjS - 15-11-2021

(15-11-2021, 10:54)kaczakat napisał(a): Nie zawsze inty mają taki zakres. Używasz ESP8266 lub innego 32 bitowego uC? Chcesz mieć pewność co do zmiennej użyj typu uint16_t lub int16_t.
Dzięki bardzo wszystko działa ,nie wiem o czym ja myślałem pisząc tego "inta", poszedłem na łatwiznę sprawdzając wielkość inta na stronie arduino, nie myśląc o tym ze mam inny procesor.
 uC to teensy 4.
Jeszcze raz dziękuje.