Integer

整数的抽象类. 其子类包括FixnumBignum. 这两类整数可根据长度进行自动变换. 在位操作中,可将整数看成无限长的位串.

超类:

包含的模块:

类方法:

Integer.induced_from(num)

num变为Integer并返回变换结果.

方法:

self[nth]

若第nth位(最下位(LSB)是第0位)是1就返回1,除此之外返回0.

之所以Integer中没有self[nth]=bit是因为, Numeric的相关类是immutable.

方法:

self + other
self - other
self * other
self / other
self % other
self ** other

算术操作符. 分别表示和、差、积、商、余数(模)、幂.

self <=> other

selfother进行比较. 若self较大时返回正数, 若相等时返回0, 若较小时返回负数.

self == other
self < other
self <= other
self > other
self >= other

比较操作符.

~ self
self | other
self & other
self ^ other

位操作符. 分别表示非、或、与、异或.

self << bits
self >> bits

移位操作符. 向右(左)移动bits位.

右移位时,将保留符号位(最上位是(MSB)).

printf("%#b\n", 0b0101 << 1)
printf("%#b\n", 0b0101 >> 1)

=> 0b1010
   0b10

p -1 >> 1

=> -1
chr

返回与字符代码相对应的1个字节的字符串. 例如65.chr返回 "A".

相反地,若想得到某字符串的字符代码时,可以使用"A"[0](请参考String#[]).

整数必需在0到255之间,若超出该范围将引发RangeError异常.

downto(min) {|n| ... }

循环起点为self,步长为-1,循环终点为min. 若self < min将不作动作.

请参考upto, step, times.

succ

返回下个整数.

step(limit, step) {|n| ... }

循环执行块的内容,循环起点是self,步长为step,终点是limit. 同时,step也可以是负数(缺省设置为1).另外,limitstep还可以是Float等.

若将step设为0会引发ArgumentError异常.

返回self.

请参考upto, downto, times.

ruby 1.7 特性: 请参考Numeric#step.

times {|n| ... }

循环self(从0到self-1)次. 若self为负则不作动作.

返回self.

请参考upto, downto, step.

to_i
to_int

返回self.

size

以字节数返回当前条件下的整数的长度.

当前条件下,Fixnumsizeof(long)是固定的(在多数32 bit 机器中是 4字节),而Bignum则取决于系统情况.

p 1.size
p 0x1_0000_0000.size
# => 4
     8
to_f

将数值变为浮点数(Float).

to_s
to_s(base) ((<ruby 1.7 特性>))

将整数变为10进制字符串形式.

ruby 1.7 特性: 若使用了参数,则把整数变为以参数为基数的字符串形式. 基数只能是2到36之间的数,若超出范围则引发ArgumentError异常.

p 10.to_s(2)    # => "1010"
p 10.to_s(8)    # => "12"
p 10.to_s(16)   # => "a"
p 35.to_s(36)   # => "z"
upto(max) {|n| ... }

循环起点为self,步长为1,循环终点为max.若self > max则不作动作.

返回self.

请参考downto, step, times.