5.1.1. Celá čísla

5.1.1.1. Třída Fixnum
5.1.1.2. Třída Bignum

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

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> 123456
123456
irb(main):002:0> 123_456
123456
irb(main):003:0> -539
-539
irb(main):004:0> 123_456_789_012_345_678_901
123456789012345678901
irb(main):005:0> 0xFD
253
irb(main):006:0> 0x2569_fd56
627703126
irb(main):007:0> 0377
255
irb(main):008:0> 0b111_010
58
irb(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 + 32
456354
3478 + 342 + 0xFF
4075

odčítat

# $Id: odcitani-celych-cisel.ses,v 1.1 2003/11/19 23:54:35 radek Exp $
22 - 32
-10
0xFF - 0b1010
245

násobit

# $Id: nasobeni-celych-cisel.ses,v 1.1 2003/11/19 23:54:35 radek Exp $
16 * 8
128
0x100 * 10
2560

a dělit

# $Id: deleni-celych-cisel.ses,v 1.1 2003/11/19 23:54:35 radek Exp $
16 / 4
4
5 / 2
2
7 / 3
2

Licence Creative Commons
Tento dokument Ruby, jehož autorem je Radek Hnilica, podléhá licenci Creative Commons Uveďte autora-Nevyužívejte dílo komerčně-Zachovejte licenci 3.0 Česká republika .