整数的抽象类. 其子类包括Fixnum 和 Bignum. 这两类整数可根据长度进行自动变换. 在位操作中,可将整数看成无限长的位串.
Integer.induced_from(num)将num变为Integer并返回变换结果.
self[nth]若第nth位(最下位(LSB)是第0位)是1就返回1,除此之外返回0.
之所以Integer中没有self[nth]=bit是因为, Numeric的相关类是immutable.
self + otherself - otherself * otherself / otherself % otherself ** other算术操作符. 分别表示和、差、积、商、余数(模)、幂.
self <=> other对self和other进行比较. 若self较大时返回正数, 若相等时返回0, 若较小时返回负数.
self == otherself < otherself <= otherself > otherself >= other比较操作符.
~ selfself | otherself & otherself ^ other位操作符. 分别表示非、或、与、异或.
self << bitsself >> 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将不作动作.
nextsucc返回下个整数.
step(limit, step) {|n| ... }循环执行块的内容,循环起点是self,步长为step,终点是limit. 同时,step也可以是负数(缺省设置为1).另外,limit和step还可以是Float等.
若将step设为0会引发ArgumentError异常.
返回self.
ruby 1.7 特性: 请参考Numeric#step.
times {|n| ... }循环self(从0到self-1)次. 若self为负则不作动作.
返回self.
to_ito_int返回self.
size以字节数返回当前条件下的整数的长度.
当前条件下,Fixnum的sizeof(long)是固定的(在多数32
bit 机器中是 4字节),而Bignum则取决于系统情况.
p 1.size
p 0x1_0000_0000.size
# => 4
8
to_f将数值变为浮点数(Float).
to_sto_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.