Rozłożenie liczby 8 cyfrowej na tablicę - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Programowanie w Arduino (https://forum.arduinopolska.pl/dzial-programowanie-w-arduino) +--- Wątek: Rozłożenie liczby 8 cyfrowej na tablicę (/watek-roz%C5%82o%C5%BCenie-liczby-8-cyfrowej-na-tablic%C4%99) |
Rozłożenie liczby 8 cyfrowej na tablicę - StaszekIM - 05-03-2016 Witam Mam mały problem z napisaniem kodu, który liczbę zapisaną jako np. 00010001 rozłożyłby mi na tablicę która wyglądałaby tak: {0, 0, 0, 1, 0, 0, 0, 1}. Mój kod wygląda w tej chwili tak: Kod: void rozdz(int lic){ Nie wiem z jakiego powodu, monitor wypluwa mi 00004097. Próbowałem wstawić jedynkę na początek przypuszczając że może to być wina liczby zaczynającej się od zera (100010001), wynik to 00002065, gdy wstawiłem 2 (200010001) dostałem 0 0 0 0 -5 -8 -7 -1... Mógłby mi ktoś wytłumaczyć skąd to się bierze i jak to naprawić? Z góry dziękuję za pomoc RE: Rozłożenie liczby 8 cyfrowej na tablicę - Magikkomputerowy - 05-03-2016 Zrób stringa z liczby. Jestem programistą PHP, a w arduino dopiero zaczynam, ale na bank jest możliwość przekształcenia typu zmiennej i następnie podzielenie jej na części. Z tego co wyczytałem to przyda ci się funkcja trim(). A wychodzą ci jakieś egzotyczne wyniki bo ty dzielisz tą liczbę: el[a]=lic%10; RE: Rozłożenie liczby 8 cyfrowej na tablicę - StaszekIM - 06-03-2016 Już wiem co było przyczyną. Nie zwróciłem zupełnie uwagi na typ zmiennej którą wprowadzam do funkcji - próbowałem wprowadzić liczbę 9-cyfrową do zmiennej typu integer... Po zmienieniu tego na unsigned long wszystko działa. (05-03-2016, 20:35)Magikkomputerowy napisał(a): A wychodzą ci jakieś egzotyczne wyniki bo ty dzielisz tą liczbę: el[a]=lic%10; To nie dzielenie, to funkcja modulo (reszta z dzielenia liczby przez daną) |