Int32

The convention is to name the module alias after the file name it is defined in:

import Int32 "mo:base/Int32";

On this page

Constants

Value minimumValue
Value maximumValue

Conversion

Function toInt
Function toText
Function fromInt
Function fromIntWrap
Function fromNat32
Function toNat32

Comparison

Function min
Function max
Function equal
Function notEqual
Function less
Function lessOrEqual
Function greater
Function greaterOrEqual
Function compare

Numerical Operations

Function abs
Function neg
Function add
Function sub
Function mul
Function div
Function rem
Function pow

Bitwise Operators

Function bitnot
Function bitand
Function bitor
Function bitxor
Function bitshiftLeft
Function bitshiftRight
Function bitrotLeft
Function bitrotRight
Function bittest
Function bitset
Function bitclear
Function bitflip
Function bitcountNonZero
Function bitcountLeadingZero
Function bitcountTrailingZero

Wrapping Operations

Function addWrap
Function subWrap
Function mulWrap
Function powWrap

minimumValue

let minimumValue : Int32 = -2_147_483_648

maximumValue

let maximumValue : Int32 = 2_147_483_647

Int32.toInt

 func toInt(i : Int32) : Int

The function toInt takes one Int32 value and returns an Int value.

import Int32 "mo:base/Int32";

let a : Int32 = -2147483648;

Int32.toInt(a);

Int32.toText

 func toText(i : Int32) : Text

The function toText takes one Int32 value and returns a Text value.

import Int32 "mo:base/Int32";

let b : Int32 = -2147483648;

Int32.toText(b);

Int32.fromInt

 func fromInt(i : Int) : Int32

The function fromInt takes one Int value and returns an Int32 value.

import Int32 "mo:base/Int32";

let integer : Int = -21474;

Int32.fromInt(integer);

Int32.fromIntWrap

 func fromIntWrap(i : Int) : Int32

The function fromIntWrap takes one Int value and returns an Int32 value.

import Int32 "mo:base/Int32";

let integer : Int = 4294967295;

Int32.fromIntWrap(integer);

Int32.fromNat32

 func fromNat32(i : Nat32) : Int32

The function fromNat32 takes one Nat32 value and returns an Int32 value.

import Int32 "mo:base/Int32";

let nat32 : Nat32 = 4294967295;

Int32.fromNat32(nat32);

Int32.toNat32

 func toNat32(i : Int32) : Nat32

The function toNat32 takes one Int32 value and returns an Nat32 value.

import Int32 "mo:base/Int32";

let int32 : Int32 = -967296;

Int32.toNat32(int32);

Int32.min

func min(x : Int32, y : Int32) : Int32

The function min takes two Int32 value and returns a Int32 value.

import Int32 "mo:base/Int32";

let x : Int32 = 2000;
let y : Int32 = 1001;

Int32.min(x, y);

Int32.max

func max(x : Int32, y : Int32) : Int32

The function max takes two Int32 value and returns a Int32 value.

import Int32 "mo:base/Int32";

let x : Int32 = 2000;
let y : Int32 = 2001;

Int32.max(x, y);

Int32.equal

func equal(x : Int32, y : Int32) : Bool

The function equal takes two Int32 value and returns a Bool value.

import Int32 "mo:base/Int32";

let x : Int32 = 1000;
let y : Int32 = 100;

Int32.equal(x, y);

Int32.notEqual

func notEqual(x : Int32, y : Int32) : Bool

The function notEqual takes two Int32 value and returns a Bool value.

import Int32 "mo:base/Int32";

let x : Int32 = 1000;
let y : Int32 = 1001;

Int32.notEqual(x, y);

Int32.less

func less(x : Int32, y : Int32) : Bool

The function less takes two Int32 value and returns a Bool value.

import Int32 "mo:base/Int32";

let x : Int32 = 2000;
let y : Int32 = 2500;

Int32.less(x, y);

Int32.lessOrEqual

func lessOrEqual(x : Int32, y : Int32) : Bool

The function lessOrEqual takes two Int32 value and returns a Bool value.

import Int32 "mo:base/Int32";

let x : Int32 = 2000;
let y : Int32 = 2500;

Int32.lessOrEqual(x, y);

Int32.greater

func greater(x : Int32, y : Int32) : Bool

The function greater takes two Int32 value and returns a Bool value.

import Int32 "mo:base/Int32";

let x : Int32 = 2000;
let y : Int32 = 1000;

Int32.greater(x, y);

Int32.greaterOrEqual

func greaterOrEqual(x : Int32, y : Int32) : Bool

The function greaterOrEqual takes two Int32 value and returns a Bool value.

import Int32 "mo:base/Int32";

let x : Int32 = 2000;
let y : Int32 = 1000;

Int32.greaterOrEqual(x, y);

Int32.compare

func compare(x : Int32, y : Int32) : Bool

The function compare takes two Int32 value and returns an Order variant value.

import Int32 "mo:base/Int32";

let x : Int32 = 10000;
let y : Int32 = 9999;

Int32.compare(x, y);

Int32.abs

func abs(x : Int32) : Int32

The function abs takes one Int32 value and returns a Int32 value.

import Int32 "mo:base/Int32";

let x : Int32 = -40;

Int32.abs(x);

Int32.neg

func neg(x : Int32) : Int32

The function neg takes one Int32 value and returns a Int32 value.

import Int8 "mo:base/Int8";

let x : Int8 = -50;

Int8.neg(x);

Int32.add

func add(x : Int32, y : Int32) : Int32

The function add takes two Int32 value and returns a Int32 value.

import Int32 "mo:base/Int32";

let x : Int32 = 2000;
let y : Int32 = 1200;

Int32.add(x, y);

Int32.sub

func sub(x : Int32, y : Int32) : Int32

The function sub takes two Int32 value and returns a Int32 value.

import Int32 "mo:base/Int32";

let x : Int32 = 4000;
let y : Int32 = 3999;

Int32.sub(x, y);

Int32.mul

func mul(x : Int32, y : Int32) : Int32

The function mul takes two Int32 value and returns a Int32 value.

import Int32 "mo:base/Int32";

let x : Int32 = 200;
let y : Int32 = 50;

Int32.mul(x, y);

Int32.div

func div(x : Int32, y : Int32) : Int32

The function div takes two Int32 value and returns a Int32 value.

import Int32 "mo:base/Int32";

let x : Int32 = 5000;
let y : Int32 = 500;

Int32.div(x, y);

Int32.rem

func rem(x : Int32, y : Int32) : Int32

The function rem takes two Int32 value and returns a Int32 value.

import Int32 "mo:base/Int32";

let x : Int32 = 4000;
let y : Int32 = 1200;

Int32.rem(x, y);

Int32.pow

func pow(x : Int32, y : Int32) : Int32

The function pow takes two Int32 value and returns a Int32 value.

import Int32 "mo:base/Int32";

let x : Int32 = 10;
let y : Int32 = 5;

Int32.pow(x, y);

Int32.bitnot

func bitnot(x : Int32) : Int32

The function bitnot takes one Int32 value and returns a Int32 value.

import Int32 "mo:base/Int32";

let x : Int32 = 255; // Binary : 00000000_00000000_00000000_11111111

Int32.bitnot(x) // Binary : 11111111_11111111_11111111_00000000

Int32.bitand

func bitand(x : Int32, y : Int32) : Int32

The function bitand takes two Int32 value and returns a Int32 value.

import Int32 "mo:base/Int32";

let x : Int32 = 255; // Binary : 00000000_00000000_00000000_11111111
let y : Int32 = 255; // Binary : 00000000_00000000_00000000_11111111

Int32.bitand(x, y) // Binary : 00000000_00000000_00000000_11111111

Int32.bitor

func bitor(x : Int32, y : Int32) : Int32

The function bitor takes two Int32 value and returns a Int32 value.

import Int32 "mo:base/Int32";

let x : Int32 = 240; // Binary : 00000000_00000000_00000000_11110000
let y : Int32 = 15; // Binary : 00000000_00000000_00000000_00001111

Int32.bitor(x, y) // Binary : 00000000_00000000_00000000_11111111

Int32.bitxor

func bitxor(x : Int32, y : Int32) : Int32

The function bitxor takes two Int32 value and returns a Int32 value.

import Int32 "mo:base/Int32";

let x : Int32 = 255; // Binary : 00000000_00000000_00000000_11111111
let y : Int32 = 240; // Binary : 00000000_00000000_00000000_11110000

Int32.bitxor(x, y) // Binary : 00000000_00000000_00000000_00001111

Int32.bitshiftLeft

func bitshiftLeft(x : Int32, y : Int32) : Int32

The function bitshiftLeft takes two Int32 value and returns a Int32 value.

import Int32 "mo:base/Int32";

let x : Int32 = 15; // Binary : 00000000_00000000_00000000_00001111
let y : Int32 = 4;

Int32.bitshiftLeft(x, y) // Binary : 00000000_00000000_00000000_11110000

Int32.bitshiftRight

func bitshiftRight(x : Int32, y : Int32) : Int32

The function bitshiftRight takes two Int32 value and returns a Int32 value.

import Int32 "mo:base/Int32";

let x : Int32 = 240; // Binary : 00000000_00000000_00000000_11110000
let y : Int32 = 4;

Int32.bitshiftRight(x, y) // Binary : 00000000_00000000_00000000_00001111

Int32.bitrotLeft

func bitrotLeft(x : Int32, y : Int32) : Int32

The function bitrotLeft takes two Int32 value and returns a Int32 value.

import Int32 "mo:base/Int32";

let x : Int32 = 2_147_483_647; // Binary : 01111111_11111111_11111111_11111111
let y : Int32 = 1;

Int32.bitrotLeft(x, y) // Binary : 11111111_11111111_11111111_11111110

Int32.bitrotRight

func bitrotRight(x : Int32, y : Int32) : Int32

The function bitrotRight takes two Int32 value and returns a Int32 value.

import Int32 "mo:base/Int32";

let x : Int32 = 2_147_483_647; // Binary : 01111111_11111111_11111111_11111111
let y : Int32 = 1;

Int32.bitrotRight(x, y) // Binary : 10111111_11111111_11111111_11111111

Int32.bittest

func bittest(x : Int32, p : Nat) : Bool

The function bittest takes one Int32 and one Nat value and returns a Int32 value.

import Int32 "mo:base/Int32";

let x : Int32 = 255; // Binary : 00000000_00000000_00000000_11111111
let p : Nat = 7;

Int32.bittest(x, p)

Int32.bitset

func bitset(x : Int32, p : Nat) : Bool

The function bitset takes one Int32 and one Nat value and returns a Int32 value.

import Int32 "mo:base/Int32";

let x : Int32 = 127; // Binary : 00000000_00000000_00000000_01111111
let p : Nat = 7;

Int32.bitset(x, p) // Binary : 00000000_00000000_00000000_11111111

Int32.bitclear

func bitclear(x : Int32, p : Nat) : Bool

The function bitclear takes one Int32 and one Nat value and returns a Int32 value.

import Int32 "mo:base/Int32";

let x : Int32 = 255; // Binary : 00000000_00000000_00000000_11111111
let p : Nat = 7;

Int32.bitclear(x, p) // Binary : 00000000_00000000_00000000_01111111

Int32.bitflip

func bitflip(x : Int32, p : Nat) : Bool

The function bitflip takes one Int32 and one Nat value and returns a Int32 value.

import Int32 "mo:base/Int32";

let x : Int32 = 255; // Binary : 00000000_00000000_00000000_11111111
let p : Nat = 7;

Int32.bitflip(x, p) // Binary : 00000000_00000000_00000000_01111111

Int32.bitcountNonZero

let bitcountNonZero : (x : Int32) -> Int32

The function bitcountNonZero takes one Int32 value and returns a Int32 value.

import Int32 "mo:base/Int32";

let x : Int32 = 255; // Binary : 00000000_00000000_00000000_11111111

Int32.bitcountNonZero(x)

Int32.bitcountLeadingZero

let bitcountLeadingZero : (x : Int32) -> Int32

The function bitcountLeadingZero takes one Int32 value and returns a Int32 value.

import Int32 "mo:base/Int32";

let x : Int32 = 255; // Binary : 00000000_00000000_00000000_11111111

Int32.bitcountLeadingZero(x)

Int32.bitcountTrailingZero

let bitcountTrailingZero : (x : Int32) -> Int32

The function bitcountTrailingZero takes one Int32 value and returns a Int32 value.

import Int32 "mo:base/Int32";

let x : Int32 = 128; // Binary : 00000000_00000000_00000000_10000000

Int32.bitcountTrailingZero(x)

Int32.addWrap

func addWrap(x : Int32, y : Int32) : Int32

The function addWrap takes two Int32 value and returns a Int32 value.It is equivalent to the +% Bitwise operators.

import Int32 "mo:base/Int32";

let x : Int32 = 2_147_483_647;
let y : Int32 = 1;

Int32.addWrap(x, y)

Int32.subWrap

func subWrap(x : Int32, y : Int32) : Int32

The function subWrap takes two Int32 value and returns a Int32 value.It is equivalent to the -% Bitwise operators.

import Int32 "mo:base/Int32";

let x : Int32 = -2_147_483_648;
let y : Int32 = 1;

Int32.subWrap(x, y)

Int32.mulWrap

func mulWrap(x : Int32, y : Int32) : Int32

The function mulWrap takes two Int32 value and returns a Int32 value.It is equivalent to the *% Bitwise operators.

import Int32 "mo:base/Int32";

let x : Int32 = 2_147_483_647;
let y : Int32 = 2;

Int32.mulWrap(x, y)

Int32.powWrap

func powWrap(x : Int32, y : Int32) : Int32

The function powWrap takes two Int32 value and returns a Int32 value.It is equivalent to the **% Bitwise operators.

import Int32 "mo:base/Int32";

let x : Int32 = 65536;
let y : Int32 = 2;

Int32.powWrap(x, y)