Structure

UInt

An unsigned integer value type.

Declaration

@frozen struct UInt

Overview

On 32-bit platforms, UInt is the same size as UInt32, and on 64-bit platforms, UInt is the same size as UInt64.

Topics

Type Aliases

typealias UInt.IntegerLiteralType

A type that represents an integer literal.

typealias UInt.Magnitude

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

typealias UInt.Stride

A type that represents the distance between two values.

Initializers

init()

Creates a new value equal to zero.

init(Double)

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

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

init<T>(T)

Creates a new instance from the given integer.

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?(String)

Creates a new integer value from the given string.

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

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

init(bigEndian: UInt)

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

init(bitPattern: Int)

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

init(bitPattern: OpaquePointer?)

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

init(bitPattern: ObjectIdentifier)

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

init<P>(bitPattern: P?)

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

init<Other>(clamping: Other)

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

init?(exactly: Float)

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

init?(exactly: Double)

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?<T>(exactly: T)

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

init?<T>(exactly: T)

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

init(from: Decoder)

Creates a new instance by decoding from the given decoder.

init(integerLiteral: UInt)

Creates an instance initialized to the specified integer value.

init(littleEndian: UInt)

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

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.

Instance Properties

var bigEndian: UInt

The big-endian representation of this integer.

var bitWidth: Int

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

var byteSwapped: UInt

A representation of this integer with the byte order swapped.

var customMirror: Mirror

A mirror that reflects the UInt instance.

var customPlaygroundQuickLook: _PlaygroundQuickLook

A custom playground Quick Look for the UInt instance.

Deprecated
var description: String

A textual representation of this value.

var hashValue: Int

The hash value.

var leadingZeroBitCount: Int

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

var littleEndian: UInt

The little-endian representation of this integer.

var magnitude: UInt

The magnitude of this value.

var nonzeroBitCount: Int

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

var trailingZeroBitCount: Int

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

var words: UInt.Words

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

Type Properties

static var bitWidth: Int

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

static var isSigned: Bool

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

static var max: UInt

The maximum representable integer in this type.

static var min: UInt

The minimum representable integer in this type.

static var zero: UInt

The zero value.

Instance Methods

func addingReportingOverflow(UInt) -> (partialValue: UInt, 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 advanced(by: Int) -> UInt

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

func distance(to: UInt) -> Int

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

func dividedReportingOverflow(by: UInt) -> (partialValue: UInt, 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 dividingFullWidth((high: UInt, low: UInt.Magnitude)) -> (quotient: UInt, remainder: UInt)

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

func encode(to: Encoder)

Encodes this value into the given encoder.

func hash(into: inout Hasher)

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

func isMultiple(of: UInt) -> Bool

Returns true if this value is a multiple of the given value, and false otherwise.

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

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

func multipliedReportingOverflow(by: UInt) -> (partialValue: UInt, 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 quotientAndRemainder(dividingBy: UInt) -> (quotient: UInt, remainder: UInt)

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

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

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

func signum() -> UInt

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

func subtractingReportingOverflow(UInt) -> (partialValue: UInt, 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.

Type Methods

static func random(in: ClosedRange<UInt>) -> UInt

Returns a random value within the specified range.

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

Returns a random value within the specified range.

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

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

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

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

Operator Functions

static func != <Other>(UInt, Other) -> Bool

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

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

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

static func % (UInt, UInt) -> UInt

Returns the remainder of dividing the first value by the second.

static func %= (inout UInt, UInt)

Divides the first value by the second and stores the remainder in the left-hand-side variable.

static func & (UInt, UInt) -> UInt

Returns the result of performing a bitwise AND operation on the two given values.

static func & (UInt, UInt) -> UInt

Returns the result of performing a bitwise AND operation on the two given values.

static func &* (UInt, UInt) -> UInt

Returns the product of the two given values, wrapping the result in case of any overflow.

static func &*= (inout UInt, UInt)

Multiplies two values and stores the result in the left-hand-side variable, wrapping any overflow.

static func &+ (UInt, UInt) -> UInt

Returns the sum of the two given values, wrapping the result in case of any overflow.

static func &+= (inout UInt, UInt)

Adds two values and stores the result in the left-hand-side variable, wrapping any overflow.

static func &- (UInt, UInt) -> UInt

Returns the difference of the two given values, wrapping the result in case of any overflow.

static func &-= (inout UInt, UInt)

Subtracts the second value from the first and stores the difference in the left-hand-side variable, wrapping any overflow.

static func &<< <Other>(UInt, Other) -> UInt

Returns the result of shifting a value’s binary representation the specified number of digits to the left, masking the shift amount to the type’s bit width.

static func &<< (UInt, UInt) -> UInt

Returns the result of shifting a value’s binary representation the specified number of digits to the left, masking the shift amount to the type’s bit width.

static func &<< (UInt, UInt) -> UInt

Returns the result of shifting a value’s binary representation the specified number of digits to the left, masking the shift amount to the type’s bit width.

static func &<<= (inout UInt, UInt)

Returns the result of shifting a value’s binary representation the specified number of digits to the left, masking the shift amount to the type’s bit width, and stores the result in the left-hand-side variable.

static func &<<= <Other>(inout UInt, Other)

Returns the result of shifting a value’s binary representation the specified number of digits to the left, masking the shift amount to the type’s bit width, and stores the result in the left-hand-side variable.

static func &= (inout UInt, UInt)

Stores the result of performing a bitwise AND operation on the two given values in the left-hand-side variable.

static func &>> <Other>(UInt, Other) -> UInt

Returns the result of shifting a value’s binary representation the specified number of digits to the right, masking the shift amount to the type’s bit width.

static func &>> (UInt, UInt) -> UInt

Returns the result of shifting a value’s binary representation the specified number of digits to the right, masking the shift amount to the type’s bit width.

static func &>> (UInt, UInt) -> UInt

Returns the result of shifting a value’s binary representation the specified number of digits to the right, masking the shift amount to the type’s bit width.

static func &>>= <Other>(inout UInt, Other)

Calculates the result of shifting a value’s binary representation the specified number of digits to the right, masking the shift amount to the type’s bit width, and stores the result in the left-hand-side variable.

static func &>>= (inout UInt, UInt)

Calculates the result of shifting a value’s binary representation the specified number of digits to the right, masking the shift amount to the type’s bit width, and stores the result in the left-hand-side variable.

static func * (UInt, UInt) -> UInt

Multiplies two values and produces their product.

static func *= (inout UInt, UInt)

Multiplies two values and stores the result in the left-hand-side variable.

static func + (UInt) -> UInt

Returns the given number unchanged.

static func + (UInt, UInt) -> UInt

Adds two values and produces their sum.

static func += (inout UInt, UInt)

Adds two values and stores the result in the left-hand-side variable.

static func - (UInt, UInt) -> UInt

Subtracts one value from another and produces their difference.

static func -= (inout UInt, UInt)

Subtracts the second value from the first and stores the difference in the left-hand-side variable.

static func ... (UInt) -> PartialRangeFrom<UInt>

Returns a partial range extending upward from a lower bound.

static func ... (UInt) -> PartialRangeThrough<UInt>

Returns a partial range up to, and including, its upper bound.

static func ... (UInt, UInt) -> ClosedRange<UInt>

Returns a closed range that contains both of its bounds.

static func ..< (UInt) -> PartialRangeUpTo<UInt>

Returns a partial range up to, but not including, its upper bound.

static func ..< (UInt, UInt) -> Range<UInt>

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

static func / (UInt, UInt) -> UInt

Returns the quotient of dividing the first value by the second.

static func /= (inout UInt, UInt)

Divides the first value by the second and stores the quotient in the left-hand-side variable.

static func < <Other>(UInt, Other) -> Bool

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

static func < (UInt, UInt) -> Bool

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

static func < (UInt, UInt) -> Bool

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

static func << <Other>(UInt, Other) -> UInt

Returns the result of shifting a value’s binary representation the specified number of digits to the left.

static func << <RHS>(UInt, RHS) -> UInt

Returns the result of shifting a value’s binary representation the specified number of digits to the left.

static func <<= <Other>(inout UInt, Other)

Stores the result of shifting a value’s binary representation the specified number of digits to the left in the left-hand-side variable.

static func <= <Other>(UInt, Other) -> Bool

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

static func <= (UInt, UInt) -> Bool

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

static func <= (UInt, UInt) -> Bool

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

static func <= (UInt, UInt) -> Bool

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

static func == <Other>(UInt, Other) -> Bool

Returns a Boolean value indicating whether the two given values are equal.

static func == (UInt, UInt) -> Bool

Returns a Boolean value indicating whether two values are equal.

static func == (UInt, UInt) -> Bool

Returns a Boolean value indicating whether two values are equal.

static func > <Other>(UInt, Other) -> Bool

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

static func > (UInt, UInt) -> Bool

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

static func > (UInt, UInt) -> Bool

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

static func > (UInt, UInt) -> Bool

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

static func >= <Other>(UInt, Other) -> Bool

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

static func >= (UInt, UInt) -> Bool

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

static func >= (UInt, UInt) -> Bool

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

static func >= (UInt, UInt) -> Bool

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

static func >> <Other>(UInt, Other) -> UInt

Returns the result of shifting a value’s binary representation the specified number of digits to the right.

static func >> <RHS>(UInt, RHS) -> UInt

Returns the result of shifting a value’s binary representation the specified number of digits to the right.

static func >>= <Other>(inout UInt, Other)

Stores the result of shifting a value’s binary representation the specified number of digits to the right in the left-hand-side variable.

static func ^ (UInt, UInt) -> UInt

Returns the result of performing a bitwise XOR operation on the two given values.

static func ^ (UInt, UInt) -> UInt

Returns the result of performing a bitwise XOR operation on the two given values.

static func ^= (inout UInt, UInt)

Stores the result of performing a bitwise XOR operation on the two given values in the left-hand-side variable.

static func | (UInt, UInt) -> UInt

Returns the result of performing a bitwise OR operation on the two given values.

static func | (UInt, UInt) -> UInt

Returns the result of performing a bitwise OR operation on the two given values.

static func |= (inout UInt, UInt)

Stores the result of performing a bitwise OR operation on the two given values in the left-hand-side variable.

static func ~ (UInt) -> UInt

Returns the inverse of the bits set in the argument.

Structures

struct UInt.SIMD16Storage

Storage for a vector of 16 integers.

struct UInt.SIMD2Storage

Storage for a vector of two integers.

struct UInt.SIMD32Storage

Storage for a vector of 32 integers.

struct UInt.SIMD4Storage

Storage for a vector of four integers.

struct UInt.SIMD64Storage

Storage for a vector of 64 integers.

struct UInt.SIMD8Storage

Storage for a vector of eight integers.

struct UInt.Words

A type that represents the words of this integer.

See Also

Unsigned Integers

struct UInt8

An 8-bit unsigned integer value type.

struct UInt16

A 16-bit unsigned integer value type.

struct UInt32

A 32-bit unsigned integer value type.

struct UInt64

A 64-bit unsigned integer value type.