FIXME:dopsat
Celá čísla v Ruby jsou celými čísly tak jak je znáte ze školy a jiných programovacích jazyků.
Běžně jsou čísla v rozsahu od -230 do 230-1 a nebo od -262 do 262-1 (dle implementace) reprezentována v binární formě a jsou objekty třídy Fixnum.
Celá čísla mimo tento rozsah jsou uložena v objektech třídy Bignum a implementována jako řada čísel proměnné délky.
Převod čísla třídy Fixnum na číslo třídy Bignum a zpět se děje zcela transparentně dle potřeb, a programátor se o ně nemusí starat.
Celá čísla zapisujeme jako posloupnost znaků 0-9, _ a znaménaka -.
Znak podtžítko _ slouží jen k optickému oddělení skupin čísel libovolné délky a nemá žádný jiný význam.
Umožňuje nám místo 6589245 psát mnohem přehledněji 6_589_245.
Mimo zápis dekadický, který znáte ze školy, můžete použít zápis hexadecimální.
Hexadecimální zápis čísla začíná obdobně jako v jazyce C posloupností znaků 0x, můžeme psát i s velkým X 0X.
Rovněž stejně jako v jazyce C je možno psát oktalově, číslo pak začíná nulou 0.
Mimo tyto způsoby zápisu čísla známé z jazyka C existuje ještě možnost zapsat číslo binárně jako posloupnost nul a jedniček.
Takováto posloupnost pak začíná 0b nebo 0B.
Krátký přehled zápisu čísel
456 — celé číslo
-367 — záporné celé číslo
1_099_511_627_776 — velké celé číslo s podtžítky pro lepší čtení
0377 — číslo zadané v osmičkové soustavě, poznáme podle vedoucí nuly.
0xFF — to stejné číslo v šestnáctkové (hexadecimální) soustavě, poznáme podle předpony 0x nebo 0X, pro zápis můžeme použít velká i malá písmena
0b10101010 — číslo 170v dvojkové (binární) soustavě, poznáme podle předpony 0b nebo 0B
Podtržítko pro lepší čitelnost velikých čísel můžeme použít také v ostantích zápisech, nikoliv jen dekadickém. Například 0xAB20_BFF0_0FFF, 0b10101011_00100000.
# $Id: priklady-zapisu-celych-cisel.ses,v 1.1 2002/12/16 20:34:13 radek Exp $irb(main):001:0>123456123456irb(main):002:0>123_456123456irb(main):003:0>-539-539irb(main):004:0>123_456_789_012_345_678_901123456789012345678901irb(main):005:0>0xFD253irb(main):006:0>0x2569_fd56627703126irb(main):007:0>0377255irb(main):008:0>0b111_01058irb(main):009:0>
S celými čísly můžeme provádět běžné operace tak jak jsme zvyklí z jiných programovacích jazyků, nebo ze školy. Můžeme je sčítat:
# $Id: scitani-celych-cisel.ses,v 1.1 2003/11/19 23:54:35 radek Exp $456_322 + 324563543478 + 342 + 0xFF4075
odčítat
# $Id: odcitani-celych-cisel.ses,v 1.1 2003/11/19 23:54:35 radek Exp $22 - 32-100xFF - 0b1010245
násobit
# $Id: nasobeni-celych-cisel.ses,v 1.1 2003/11/19 23:54:35 radek Exp $16 * 81280x100 * 102560
a dělit
# $Id: deleni-celych-cisel.ses,v 1.1 2003/11/19 23:54:35 radek Exp $16 / 445 / 227 / 32
