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.

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)

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)

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)

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)

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)

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)

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)

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

func unsafeSubtracting(Int)

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

func unsafeMultiplied(by: Int)

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

func unsafeDivided(by: 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)

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))

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)

Returns the absolute value of the given number.

func signum()

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.

Creating a Range

static func ..< (Int, Int)

Returns a countable half-open range that contains its lower bound but not its upper bound.

static func ..< (Int, Int)

Returns a half-open range that contains its lower bound but not its upper bound.

static func ... (Int, Int)

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

static func ... (Int, Int)

Returns a closed range that contains both of its bounds.

Describing an Integer

var description: String

A textual representation of this value.

var hashValue: Int

The integer’s hash value.

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)

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

func advanced(by: 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.

See Also

Numeric Values

struct Double

A double-precision, floating-point value type.

struct Float

A single-precision, floating-point value type.