概要
Rubyの組み込みライブラリのBignumクラスについて
Bignumの各メソッドのサンプル
bignum = (0b1 << 30) # => 2進数の1を30ビット左シフト演算 = 1073741824 puts bignum.class puts bignum % 3 # => 1073741824/3の余り=1 | 余り puts bignum & 3 # => 1073741824と3の論理積=0 | 論理積 puts bignum * 3 # => 1073741824×3=3221225472 |算術演算子 積 puts bignum ** 2 # => 1073741824*1073741824 |べき乗 puts bignum + 1 # => 1073741824+1=1073741825 |算術演算子 和 puts bignum - 1 # => 1073741824-1=1073741823 |算術演算子 差 puts bignum / 2 # => 1073741824/2=536870912 |算術演算子 商 puts bignum << 1 # => 1073741824<<1=2147483648 |シフト演算 左シフト puts bignum >> 1 # => 107374182>>1=536870912 |シフト演算 右シフト puts bignum <=> bignum # => 107374182:107374182=0 |比較 同一 puts bignum <=> bignum+1 # => 107374182:107374183=-1 |比較 左辺が小さい puts bignum <=> bignum-1 # => 107374182:107374181=1 |比較 左辺が大きい puts bignum == bignum # => 107374182==107374182=true |比較演算子 同一 puts bignum == 1 # => 107374182==1=false |比較演算子 相違 puts bignum[0] # => 107374182の1ビット目を取得=0 puts (bignum+1)[0] # => 107374183の1ビット名を取得=1 puts bignum ^ 1 # => 107374182と1の排他的論理和=1073741825 puts bignum.quo(2) # => 107374182を2で割って結果をRationalで返す=536870912/1 puts bignum.size # => 107374182のバイト数を取得=4 ※Bignumは、システム依存 puts bignum.to_f # => 107374182を浮動小数点に変換=1073741824.0 puts bignum | 1 # => 107374182と1の論理和=1073741825
出力結果
Bignum 1 0 3221225472 1152921504606846976 1073741825 1073741823 536870912 2147483648 536870912 0 -1 1 true false 0 1 1073741825 536870912/1 4 1073741824.0 1073741825