Structure

Int

A signed integer value type.

Overview

On 32-bit platforms, Int is the same size as Int32, and on 64-bit platforms, Int is the same size as Int64.

Topics

Converting Integers

init<T>(T)

Creates a new instance from the given integer.

init?<T>(exactly: T)

Creates a new instance from the given integer, if it can be represented exactly.

init<Other>(clamping: Other)

Creates a new instance with the representable value that’s closest to the given integer.

init<T>(truncatingIfNeeded: T)

Creates a new instance from the bit pattern of the given instance by truncating or sign-extending if needed to fit this type.

init(bitPattern: UInt)

Creates a new instance with the same memory representation as the given value.

Converting Floating-Point Values

init<T>(T)

Creates an integer from the given floating-point value, rounding toward zero. Any fractional part of the value passed as source is removed.

init?<T>(exactly: T)

Creates an integer from the given floating-point value, if it can be represented exactly.

init(Double)

Creates an integer from the given floating-point value, rounding toward zero.

init(Float)

Creates an integer from the given floating-point value, rounding toward zero.

init(CGFloat)

Creates an integer from the given floating-point value, rounding toward zero.

init(Float80)

Creates an integer from the given floating-point value, rounding toward zero.

init?(exactly: Double)

Creates an integer from the given floating-point value, if it can be represented exactly.

init?(exactly: Float)

Creates an integer from the given floating-point value, if it can be represented exactly.

init?(exactly: Float80)

Creates an integer from the given floating-point value, if it can be represented exactly.

init?(exactly: NSNumber)

Creates an integer from the given value, if it can be represented exactly.

init(truncating: NSNumber)

Creates an integer from the given value, rounding toward zero when necessary.

init(NSNumber)

Creates an integer from the given value, rounding toward zero when necessary.

Deprecated

Converting Strings

init?(String)

Creates a new integer value from the given string.

init?<S>(S, radix: Int)

Creates a new integer value from the given string and radix.

Creating a Random Integer

static func random(in: Range<Int>) -> Int

Returns a random value within the specified range.

Beta
static func random(in: ClosedRange<Int>) -> Int

Returns a random value within the specified range.

Beta

Performing Calculations

Integer Operators

Perform arithmetic and bitwise operations or compare values.

func negate()

Replaces this value with its additive inverse.

func quotientAndRemainder(dividingBy: Int) -> (quotient: Int, remainder: Int)

Returns the quotient and remainder of this value divided by the given value.

Performing Calculations with Overflow

These methods return the result of an operation, and a flag indicating whether the operation overflowed the bounds of the type.

func addingReportingOverflow(Int) -> (partialValue: Int, overflow: Bool)

Returns the sum of this value and the given value, along with a Boolean value indicating whether overflow occurred in the operation.

func subtractingReportingOverflow(Int) -> (partialValue: Int, overflow: Bool)

Returns the difference obtained by subtracting the given value from this value, along with a Boolean value indicating whether overflow occurred in the operation.

func multipliedReportingOverflow(by: Int) -> (partialValue: Int, overflow: Bool)

Returns the product of this value and the given value, along with a Boolean value indicating whether overflow occurred in the operation.

func dividedReportingOverflow(by: Int) -> (partialValue: Int, overflow: Bool)

Returns the quotient obtained by dividing this value by the given value, along with a Boolean value indicating whether overflow occurred in the operation.

func remainderReportingOverflow(dividingBy: Int) -> (partialValue: Int, overflow: Bool)

Returns the remainder after dividing this value by the given value, along with a Boolean value indicating whether overflow occurred during division.

Performing Calculations Without Bounds Checks

These methods perform arithmetic operations without performing bounds checks. Use these methods only when you are sure the operation won't overflow.

func unsafeAdding(Int) -> Int

Returns the sum of this value and the given value without checking for arithmetic overflow.

func unsafeSubtracting(Int) -> Int

Returns the difference obtained by subtracting the given value from this value without checking for arithmetic overflow.

func unsafeMultiplied(by: Int) -> Int

Returns the product of this value and the given value without checking for arithmetic overflow.

func unsafeDivided(by: Int) -> Int

Returns the quotient obtained by dividing this value by the given value without checking for arithmetic overflow.

Performing Double-Width Calculations

func multipliedFullWidth(by: Int) -> (high: Int, low: Int.Magnitude)

Returns a tuple containing the high and low parts of the result of multiplying this value by the given value.

func dividingFullWidth((high: Int, low: Int.Magnitude)) -> (quotient: Int, remainder: Int)

Returns a tuple containing the quotient and remainder of dividing the given value by this value.

Finding the Sign and Magnitude

var magnitude: UInt

The magnitude of this value.

func abs<T>(T) -> T

Returns the absolute value of the given number.

func signum() -> Int

Returns -1 if this value is negative and 1 if it’s positive; otherwise, 0.

Accessing Numeric Constants

static var min: Int

The minimum representable integer in this type.

static var max: Int

The maximum representable integer in this type.

static var isSigned: Bool

A Boolean value indicating whether this type is a signed integer type.

Working with Byte Order

var byteSwapped: Int

A representation of this integer with the byte order swapped.

var littleEndian: Int

The little-endian representation of this integer.

var bigEndian: Int

The big-endian representation of this integer.

init(littleEndian: Int)

Creates an integer from its little-endian representation, changing the byte order if necessary.

init(bigEndian: Int)

Creates an integer from its big-endian representation, changing the byte order if necessary.

Working with Binary Representation

static var bitWidth: Int

The number of bits used for the underlying binary representation of values of this type.

var bitWidth: Int

The number of bits in the binary representation of this value.

var words: Int.Words

A collection containing the words of this value’s binary representation, in order from the least significant to most significant.

var nonzeroBitCount: Int

The number of bits equal to 1 in this value’s binary representation.

var leadingZeroBitCount: Int

The number of leading zeros in this value’s binary representation.

var trailingZeroBitCount: Int

The number of trailing zeros in this value’s binary representation.

Working with Memory Addresses

These initializers create an integer with the bit pattern of the memory address of a pointer or class instance.

init(bitPattern: ObjectIdentifier)

Creates an integer that captures the full value of the given object identifier.

init<U>(bitPattern: UnsafePointer<U>?)

Creates a new value with the bit pattern of the given pointer.

init<U>(bitPattern: UnsafeMutablePointer<U>?)

Creates a new value with the bit pattern of the given pointer.

init(bitPattern: UnsafeRawPointer?)

Creates a new value with the bit pattern of the given pointer.

init(bitPattern: UnsafeMutableRawPointer?)

Creates a new value with the bit pattern of the given pointer.

init(bitPattern: OpaquePointer?)

Creates a new value with the bit pattern of the given pointer.

Encoding and Decoding

func encode(to: Encoder)

Encodes this value into the given encoder.

init(from: Decoder)

Creates a new instance by decoding from the given decoder.

Describing an Integer

var description: String

A textual representation of this value.

func hash(into: inout Hasher)

Hashes the essential components of this value by feeding them into the given hasher.

Beta
var customMirror: Mirror

A mirror that reflects the Int instance.

var customPlaygroundQuickLook: PlaygroundQuickLook

A custom playground Quick Look for the Int instance.

Deprecated

Infrequently Used Functionality

init()

Creates a new value equal to zero.

init(integerLiteral: Int)

Creates an instance initialized to the specified integer value.

func distance(to: Int) -> Int

Returns the distance from this value to the given value, expressed as a stride.

func advanced(by: Int) -> Int

Returns a value that is offset the specified distance from this value.

Related Types

struct Int.Words

A type that represents the words of this integer.

typealias Int.Magnitude

A type that can represent the absolute value of any possible value of this type.

typealias Int.IntegerLiteralType

A type that represents an integer literal.

Type Methods

static func random<T>(in: ClosedRange<Int>, using: inout T) -> Int

Returns a random value within the specified range, using the given generator as a source for randomness.

Beta
static func random<T>(in: Range<Int>, using: inout T) -> Int

Returns a random value within the specified range, using the given generator as a source for randomness.

Beta

Operator Functions

static func != (Int, Int) -> Bool

Returns a Boolean value indicating whether two values are not equal.

Beta
static func ... (Int, Int) -> ClosedRange<Int>

Returns a closed range that contains both of its bounds.

Beta
static func ... (Int, Int) -> ClosedRange<Int>

Returns a countable closed range that contains both of its bounds.

Beta
static func <= (Int, Int) -> Bool

Returns a Boolean value indicating whether the value of the first argument is less than or equal to that of the second argument.

Beta
static func <= (Int, Int) -> Bool

Returns a Boolean value indicating whether the value of the first argument is less than or equal to that of the second argument.

Beta
static func > (Int, Int) -> Bool

Returns a Boolean value indicating whether the value of the first argument is greater than that of the second argument.

Beta
static func > (Int, Int) -> Bool

Returns a Boolean value indicating whether the value of the first argument is greater than that of the second argument.

Beta
static func >= (Int, Int) -> Bool

Returns a Boolean value indicating whether the value of the first argument is greater than or equal to that of the second argument.

Beta
static func >= (Int, Int) -> Bool

Returns a Boolean value indicating whether the value of the first argument is greater than or equal to that of the second argument.

Beta

See Also

Standard Library

struct Double

A double-precision, floating-point value type.

struct String

A Unicode string value that is a collection of characters.

struct Array

An ordered, random-access collection.

struct Dictionary

A collection whose elements are key-value pairs.

Swift Standard Library

Solve complex problems and write high-performance, readable code.

Beta Software

This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software.

Learn more about using Apple's beta software