Ruby 2.2.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Fixnumクラス
クラスの継承リスト: Fixnum < Integer < Numeric < Comparable < Object < Kernel < BasicObject
Bignum 同様、整数のクラスです。 演算の結果が Fixnum の範囲を越えた時には 自動的に Bignum に拡張されます。
マシンのポインタのサイズに収まる長さの固定長整数で、 ほとんどのマシンでは 31 ビット幅です。
2.4.0 から Fixnum, Bignum は Integer に統合されました。 2.4.0 からはどちらも Integer クラスのエイリアスとなっています。
Ruby の Fixnum クラスは immutable です。 つまり、オブジェクト自体を破壊的に変更することはできません。 Bignum も同様です。
例:
100000.class # => Fixnum 100000 * 100000 # => 100000000 (100000 * 100000).class # => Bignum
self % other -> Fixnum | Bignum | Float
[permalink][rdoc]modulo(other) -> Fixnum | Bignum | Float
算術演算子。剰余を計算します。
self & other -> Fixnum | Bignum
[permalink][rdoc]ビット二項演算子。論理積を計算します。
1 & 1 #=> 1 2 & 3 #=> 2
self * other -> Fixnum | Bignum | Float
[permalink][rdoc]算術演算子。積を計算します。
self ** other -> Fixnum | Bignum | Float
[permalink][rdoc]算術演算子。冪(べき乗)を計算します。
2 ** 3 # => 8 2 ** 0 # => 1 0 ** 0 # => 1
self + other -> Fixnum | Bignum | Float
[permalink][rdoc]算術演算子。和を計算します。
self - other -> Fixnum | Bignum | Float
[permalink][rdoc]算術演算子。差を計算します。
- self -> Integer
[permalink][rdoc]単項演算子の - です。 self の符号を反転させたものを返します。
self / other -> Fixnum | Bignum | Float
[permalink][rdoc]div(other) -> Fixnum | Bignum | Float
算術演算子。商を計算します。
self / other
[permalink][rdoc] [redefined by mathn]
[TODO]
Fixnum#quo と同じ働きをします(有理数または整数を返します)。
self < other -> bool
[permalink][rdoc]比較演算子。数値として小さいか判定します。
self << bits -> Fixnum | Bignum
[permalink][rdoc]シフト演算子。bits だけビットを左にシフトします。
printf("%#b\n", 0b0101 << 1) #=> 0b1010 p -1 << 1 #=> -2
self <= other -> bool
[permalink][rdoc]比較演算子。数値として等しいまたは小さいか判定します。
self <=> other -> Fixnum
[permalink][rdoc]self と other を比較して、self が大きい時に正、 等しい時に 0、小さい時に負の整数を返します。
1 <=> 2 #=> -1 1 <=> 1 #=> 0 2 <=> 1 #=> 1
self == other -> bool
[permalink][rdoc]比較演算子。数値として等しいか判定します。
self > other -> bool
[permalink][rdoc]比較演算子。数値として大きいか判定します。
self >= other -> bool
[permalink][rdoc]比較演算子。数値として等しいまたは大きいか判定します。
self >> bits -> Fixnum | Bignum
[permalink][rdoc]シフト演算子。bits だけビットを右にシフトします。
右シフトは、符号ビット(最上位ビット(MSB))が保持されます。 bitsが実数の場合、小数点以下を切り捨てた値でシフトします。
printf("%#b\n", 0b0101 >> 1) #=> 0b10 p -1 >> 1 #=> -1
self[nth] -> Fixnum
[permalink][rdoc]nth 番目のビット(最下位ビット(LSB)が 0 番目)が立っている時 1 を、そうでなければ 0 を返します。
self[nth]=bit (つまりビットの修正) がないのは、Numeric 関連クラスが immutable であるためです。
self ^ other -> Fixnum | Bignum
[permalink][rdoc]ビット二項演算子。排他的論理和を計算します。
1 ^ 1 #=> 0 2 ^ 3 #=> 1
abs -> Fixnum | Bignum
[permalink][rdoc]magnitude -> Fixnum | Bignum
self の絶対値を返します。
bit_length -> Integer
[permalink][rdoc]self を表すのに必要なビット数を返します。
「必要なビット数」とは符号ビットを除く最上位ビットの位置の事を意味しま す。2**n の場合は n+1 になります。self にそのようなビットがない(0 や -1 である)場合は 0 を返します。
例: ceil(log2(int < 0 ? -int : int+1)) と同じ結果
(-2**12-1).bit_length # => 13 (-2**12).bit_length # => 12 (-2**12+1).bit_length # => 12 -0x101.bit_length # => 9 -0x100.bit_length # => 8 -0xff.bit_length # => 8 -2.bit_length # => 1 -1.bit_length # => 0 0.bit_length # => 0 1.bit_length # => 1 0xff.bit_length # => 8 0x100.bit_length # => 9 (2**12-1).bit_length # => 12 (2**12).bit_length # => 13 (2**12+1).bit_length # => 13
[SEE_ALSO] Bignum#bit_length
divmod(other) -> [Integer, Numeric]
[permalink][rdoc]self を other で割った商 q と余り r を、 [q, r] という 2 要素の配列にし て返します。 商 q は常に整数ですが、余り r は整数であるとは限りません。
[SEE_ALSO] Numeric#divmod
even? -> bool
[permalink][rdoc]self が偶数の場合に true を返します。そうでない場合に false を返します。
fdiv(other) -> Float | Complex
[permalink][rdoc]self を other で割った商を Float で返します。 ただし Complex が関わる場合は例外です。 その場合も成分は Float になります。
[SEE_ALSO] Numeric#quo
to_s(base = 10) -> String
[permalink][rdoc]inspect(base = 10) -> String
self を引数で指定した基数の文字列表現に変換します。
12345.to_s #=> "12345" 12345.to_s(2) #=> "11000000111001" 12345.to_s(8) #=> "30071" 12345.to_s(10) #=> "12345" 12345.to_s(16) #=> "3039" 12345.to_s(36) #=> "9ix"
odd? -> bool
[permalink][rdoc]self が奇数の場合に true を返します。そうでない場合に false を返します。
size -> Fixnum
[permalink][rdoc]整数の実装上のサイズをバイト数で返します。
現在の実装では Fixnum は、sizeof(long) 固定(多くの 32 bit マシンで 4 バイト)、Bignumは、システム依存です。
p 1.size p 0x1_0000_0000.size # => 4 8
succ -> Fixnum | Bignum
[permalink][rdoc]self の次の整数を返します。
to_f -> Float
[permalink][rdoc]値を浮動小数点数(Float)に変換します。
zero? -> bool
[permalink][rdoc]self が 0 の場合に true を返します。そうでない場合に false を返します。
self | other -> Fixnum | Bignum
[permalink][rdoc]ビット二項演算子。論理和を計算します。
1 | 1 #=> 1 2 | 3 #=> 3
~ self -> Fixnum | Bignum
[permalink][rdoc]ビット演算子。否定を計算します。
~1 #=> -2 ~3 #=> -4 ~-4 #=> 3