abstract struct Int

Overview

Int is the base type of all integer types.

There are four signed integer types: Int8, Int16, Int32 and Int64, being able to represent numbers of 8, 16, 32 and 64 bits respectively. There are four unsigned integer types: UInt8, UInt16, UInt32 and UInt64.

An integer literal is an optional #+ or #- sign, followed by a sequence of digits and underscores, optionally followed by a suffix. If no suffix is present, the literal's type is Int32, or Int64 if the number doesn't fit into an Int32:

1 # Int32

1_i8  # Int8
1_i16 # Int16
1_i32 # Int32
1_i64 # Int64

1_u8  # UInt8
1_u16 # UInt16
1_u32 # UInt32
1_u64 # UInt64

+10 # Int32
-20 # Int32

2147483648 # Int64

Literals without a suffix that are larger than Int64::MAX represent a UInt64 if the number fits, e.g. 9223372036854775808 and 0x80000000_00000000. This behavior is deprecated and will become an error in the future.

The underscore _ before the suffix is optional.

Underscores can be used to make some numbers more readable:

1_000_000 # better than 1000000

Binary numbers start with 0b:

0b1101 # == 13

Octal numbers start with 0o:

0o123 # == 83

Hexadecimal numbers start with 0x:

0xFE012D # == 16646445
0xfe012d # == 16646445

See Integer literals in the language reference.

Defined in:

mod_int.cr:370
mod_int.cr:371
mod_int.cr:372
mod_int.cr:373
mod_int.cr:374
prime.cr

Instance Method Summary

Instance Method Detail

def *(value : AtCoder::ModInt1000000007) #

[View source]
def *(value : AtCoder::ModInt998244353) #

[View source]
def *(value : AtCoder::ModInt754974721) #

[View source]
def *(value : AtCoder::ModInt167772161) #

[View source]
def *(value : AtCoder::ModInt469762049) #

[View source]
def +(value : AtCoder::ModInt1000000007) #

[View source]
def +(value : AtCoder::ModInt998244353) #

[View source]
def +(value : AtCoder::ModInt754974721) #

[View source]
def +(value : AtCoder::ModInt167772161) #

[View source]
def +(value : AtCoder::ModInt469762049) #

[View source]
def -(value : AtCoder::ModInt1000000007) #

[View source]
def -(value : AtCoder::ModInt998244353) #

[View source]
def -(value : AtCoder::ModInt754974721) #

[View source]
def -(value : AtCoder::ModInt167772161) #

[View source]
def -(value : AtCoder::ModInt469762049) #

[View source]
def /(value : AtCoder::ModInt1000000007) #

[View source]
def /(value : AtCoder::ModInt998244353) #

[View source]
def /(value : AtCoder::ModInt754974721) #

[View source]
def /(value : AtCoder::ModInt167772161) #

[View source]
def /(value : AtCoder::ModInt469762049) #

[View source]
def //(value : AtCoder::ModInt1000000007) #

[View source]
def //(value : AtCoder::ModInt998244353) #

[View source]
def //(value : AtCoder::ModInt754974721) #

[View source]
def //(value : AtCoder::ModInt167772161) #

[View source]
def //(value : AtCoder::ModInt469762049) #

[View source]
def ==(value : AtCoder::ModInt1000000007) #

[View source]
def ==(value : AtCoder::ModInt998244353) #

[View source]
def ==(value : AtCoder::ModInt754974721) #

[View source]
def ==(value : AtCoder::ModInt167772161) #

[View source]
def ==(value : AtCoder::ModInt469762049) #

[View source]
def prime? #

[View source]