Rozłożenie liczby 8 cyfrowej na tablice, dziwny wynik
Ostatnio zmodyfikowano 2016-03-05 17:40
StaszekIM Temat założony przez niniejszego użytkownika |
Rozłożenie liczby 8 cyfrowej na tablice, dziwny wynik » 2016-03-05 17:14:10 Witam Celem kodu jest jak w temacie rozłożenie 8 cyfrowej liczby integer na pojedyncze liczby wpisane w komórki tablicy. Mógłby mi ktoś wytłumaczyć dlaczego taki kod: void roziwys( int liczba ) { int el[ 8 ], i; for( i = 7; i >= 0; i-- ) { el[ i ] = liczba % 10; liczba /= 10; } for( i = 0; i < 8; i++ ) { printf( "%d", el[ i ] ); } }
int main() { roziwys( 00010001 ); return 0; }
Wypluwa mi 00004097? Oraz jak to naprawić? Z góry dziękuję za pomoc Edit: to mój pierwszy post na forum pisany z komórki, nie wiem czy istnieje opcja wpisania jakoś osobno kodu, w dwóch miejscach powinno być el [ i ] bez spacji, tylko zostaje to sformatowane jako kursywa :) |
|
Monika90 |
» 2016-03-05 17:32:55 00010001 to jest 4097, liczby zaczynające się od zera są przez kompilator C++ traktowane jako zapisane w systemie ósemkowym.
Kod C++ można wstawiać pomiędzy znaczniki [cpp] tutaj twój kod [/cpp]
|
|
StaszekIM Temat założony przez niniejszego użytkownika |
» 2016-03-05 17:34:40 Dzięki wielkie, istnieje w takim razie jakiś sposób na zmuszenie kompilatora do interpretacji liczby jako dziesiętną? |
|
Monika90 |
» 2016-03-05 17:37:43 Napisz bez początkowych zer: 10001 |
|
StaszekIM Temat założony przez niniejszego użytkownika |
» 2016-03-05 17:40:25 Dziękuję serdecznie za pomoc :) |
|
« 1 » |