abstract struct Int
- Int
- Number
- Value
- Object
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:370mod_int.cr:371
mod_int.cr:372
mod_int.cr:373
mod_int.cr:374
prime.cr
Instance Method Summary
- #*(value : AtCoder::ModInt1000000007)
- #*(value : AtCoder::ModInt998244353)
- #*(value : AtCoder::ModInt754974721)
- #*(value : AtCoder::ModInt167772161)
- #*(value : AtCoder::ModInt469762049)
- #+(value : AtCoder::ModInt1000000007)
- #+(value : AtCoder::ModInt998244353)
- #+(value : AtCoder::ModInt754974721)
- #+(value : AtCoder::ModInt167772161)
- #+(value : AtCoder::ModInt469762049)
- #-(value : AtCoder::ModInt1000000007)
- #-(value : AtCoder::ModInt998244353)
- #-(value : AtCoder::ModInt754974721)
- #-(value : AtCoder::ModInt167772161)
- #-(value : AtCoder::ModInt469762049)
- #/(value : AtCoder::ModInt1000000007)
- #/(value : AtCoder::ModInt998244353)
- #/(value : AtCoder::ModInt754974721)
- #/(value : AtCoder::ModInt167772161)
- #/(value : AtCoder::ModInt469762049)
- #//(value : AtCoder::ModInt1000000007)
- #//(value : AtCoder::ModInt998244353)
- #//(value : AtCoder::ModInt754974721)
- #//(value : AtCoder::ModInt167772161)
- #//(value : AtCoder::ModInt469762049)
- #==(value : AtCoder::ModInt1000000007)
- #==(value : AtCoder::ModInt998244353)
- #==(value : AtCoder::ModInt754974721)
- #==(value : AtCoder::ModInt167772161)
- #==(value : AtCoder::ModInt469762049)
- #prime?