Целобројни тип података¶
Познато ти је из математике да постоје непозициони и позициони бројевни системи. Непозициони бројевни системи су на пример римски, грчки, египатски и други старији бројевни системи. Они нису значајни у програмирању и програмском језику C и више их нећемо помињати у оквиру овог курса.
Позициони бројевни системи су бројевни системи код којих вредност коју представља цифра зависи од саме цифре и од њене позиције у запису броја. Целе бројеве у програмском језику C можеш представити помоћу три бројевна система:
декадног,
окталног и
хексадекадног.
За представљање целобројних вредности користи се целобројни тип података, односно, целобројне константе.
Декадни цели бројеви¶
Декадни бројевни систем је најчепшће коришћен бројевни систем који људи користе у свакодневном животу. То је систем записа бројева са базом десет, у којем се могу користити цифре \(0\), \(1\), \(2\), \(3\), \(4\), \(5\), \(6\), \(7\), \(8\) и \(9\). База десет значи да се сваки цео декадни број може представити као збир експонената броја \(10\).
На пример, цео декадни број \(123\) можеш представити као
Декадним целим бројевима може да претходи знак +
или знак -
, где се знак
+
може изоставити уколико је број позитиван. На пример, број \(+123\) је
позитиван цео број у декадном бројевном систему којег можеш у програмском
језику C записати као +123
или као 123
, јер се знак +
може изоставити.
Број \(-123\) је негативан цео број у декадном бројевном систему којег би у
програмском језику C записао као -123
.
Декадни цели бројеви представљају се као и у математици, стим да у програмском
језику C важи да је цео број декадни уколико не почиње нулом. То значи да број
123
у програмском језику C није једнак броју 0123
. Нула испред декадног
броја у математици не мења вредност броја, док у програмском језику C нула
испред броја има другачије значење.
Октални цели бројеви¶
У програмском језику C број који почиње нулом третира се као цео број у
окталном бројевном систему. На пример, број 0123
је број у окталном бројевном
систему. Октални бројевни систем је систем записа бројева са базом осам, у
којем се могу користити цифре \(0\), \(1\), \(2\), \(3\), \(4\), \(5\), \(6\) и \(7\).
База осам значи да се сваки цео окталан број може представити као збир
експонената броја \(8\).
Да би број из окталног бројевног система превео у декадни, последњу цифру у окталном систему множи са \(8^0\), претпоследњу са \(8^1\), следећу са \(8^2\) и тако редом. Збир добијених производа представља број у декадном бројевном систему.
На пример, претвори број \(512\) из окталног у декадни систем:
У програмском језику C број \(512\) у окталном бројевном систему записао би као
0512
, а еквивалентна вредност тог броја у декадном систему је \(330\).
Да би број из декадног бројевног система превео у октални, потребно је да вршиш целобројно дељење датог броја са \(8\) и записујеш остатке све док количник не буде једнак нули. Остаци записани у супротном редоследу од оног којим су добијени представљају број у окталном бројевном систему.
На пример, претвори број \(330\) из декадног у октални бројевни систем:
Хексадекадни цели бројеви¶
Ако број почиње са 0x
или 0X
, третира се као хексадекадни цео број.
Хексадекадни бројевни систем је систем записа бројева са базом шеснаест, у
којем се могу користити цифре \(0\), \(1\), \(2\), \(3\), \(4\), \(5\), \(6\), \(7\), \(8\), \(9\),
\(A\), \(B\), \(C\), \(D\), \(E\) и \(F\). Вредности цифара у декадном бројевном систему
које су наведене као слова у хексадекадном су следећа:
\(A_{(16)}=10_{(10)}\)
\(B_{(16)}=11_{(10)}\)
\(C_{(16)}=12_{(10)}\)
\(D_{(16)}=13_{(10)}\)
\(E_{(16)}=14_{(10)}\)
\(F_{(16)}=15_{(10)}\)
База шеснаест значи да се сваки цео хексадекадан број може представити као збир експонената броја \(16\).
У програмском језику C, ако хексадекадни број почиње са 0x
, онда се цифре
које имају вредност од 10 до 15 пишу малим словима, односно, ако почиње са 0X
онда се пишу великим словима. На пример, декадни број \(123_{(10)}\) у
програмском језику C можеш записати као хексадекадни број 0x7b
или као
хексадекадни број 0X7B
.
Да би број из хексадекадног бројевног система превео у декадни, последњу цифру у хексадекадном систему множи са \(16^0\), претпоследњу са \(16^1\), следећу са \(16^2\) и тако редом. Збир добијених производа представља број у декадном бројевном систему.
На пример, претвори број \(14A\) из хексадекадног у декадни бројевни систем:
У програмском језику C број \(14A\) у хексадекадном систему записао би као
0X14A
или 0x14a
, а еквивалентна вредност тог броја у декадном систему је
\(330\).
Да би број из декадног бројевног система превео у хексадекадни, потребно је да вршиш целобројно дељење броја са \(16\) и записујеш остатке све док количник не буде једнак нули. Остаци записани у супротном редоследу од оног којим су добијени представљају број у хексадекадном бројевном систему.
На пример, претвори број \(330\) из декадног у хексадекадни бројевни систем: