operator &<< { associativity precedence } Declarations func &<<(_: Int, rhs: Int) 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<(lhs: Int, rhs: Int) -> Int func &<<(_: Int8, rhs: Int8) 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<(lhs: Int8, rhs: Int8) -> Int8 func &<<(_: Int16, rhs: Int16) 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<(lhs: Int16, rhs: Int16) -> Int16 func &<<(_: Int32, rhs: Int32) 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<(lhs: Int32, rhs: Int32) -> Int32 func &<<(_: Int64, rhs: Int64) 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<(lhs: Int64, rhs: Int64) -> Int64 func &<<(_: Self, rhs: Self) 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<(lhs: Self, rhs: Self) -> Self Declared In FixedWidthInteger func &<<(_: Self, rhs: Self) 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<(lhs: Self, rhs: Self) -> Self Declared In FixedWidthInteger func &<<(_: Self, rhs: Self) 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<(lhs: Self, rhs: Self) -> Self Declared In FixedWidthInteger func &<<(_: Self, rhs: Self) 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<(lhs: Self, rhs: Self) -> Self Declared In FixedWidthInteger func &<<(_: Self, rhs: Self) 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<(lhs: Self, rhs: Self) -> Self Declared In FixedWidthInteger func &<<(_: Self, rhs: Self) 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<(lhs: Self, rhs: Self) -> Self Declared In FixedWidthInteger func &<<(_: Self, rhs: Self) 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<(lhs: Self, rhs: Self) -> Self Declared In FixedWidthInteger func &<<(_: Self, rhs: Self) 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<(lhs: Self, rhs: Self) -> Self Declared In FixedWidthInteger func &<<(_: Self, rhs: Self) 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<(lhs: Self, rhs: Self) -> Self Declared In FixedWidthInteger func &<<(_: Self, rhs: Self) 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<(lhs: Self, rhs: Self) -> Self Declared In FixedWidthInteger func &<<(_: UInt, rhs: 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<(lhs: UInt, rhs: UInt) -> UInt func &<<(_: UInt8, rhs: UInt8) 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<(lhs: UInt8, rhs: UInt8) -> UInt8 func &<<(_: UInt16, rhs: UInt16) 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<(lhs: UInt16, rhs: UInt16) -> UInt16 func &<<(_: UInt32, rhs: UInt32) 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<(lhs: UInt32, rhs: UInt32) -> UInt32 func &<<(_: UInt64, rhs: UInt64) 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<(lhs: UInt64, rhs: UInt64) -> UInt64 func &<< <Other>(_: Self, rhs: 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<<Other>(lhs: Self, rhs: Other) -> Self where Other : BinaryInteger Declared In FixedWidthInteger func &<< <Other>(_: Self, rhs: 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<<Other>(lhs: Self, rhs: Other) -> Self where Other : BinaryInteger Declared In FixedWidthInteger func &<< <Other>(_: Self, rhs: 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<<Other>(lhs: Self, rhs: Other) -> Self where Other : BinaryInteger Declared In FixedWidthInteger func &<< <Other>(_: Self, rhs: 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<<Other>(lhs: Self, rhs: Other) -> Self where Other : BinaryInteger Declared In FixedWidthInteger func &<< <Other>(_: Self, rhs: 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<<Other>(lhs: Self, rhs: Other) -> Self where Other : BinaryInteger Declared In FixedWidthInteger func &<< <Other>(_: Self, rhs: 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<<Other>(lhs: Self, rhs: Other) -> Self where Other : BinaryInteger Declared In FixedWidthInteger func &<< <Other>(_: Self, rhs: 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<<Other>(lhs: Self, rhs: Other) -> Self where Other : BinaryInteger Declared In FixedWidthInteger func &<< <Other>(_: Self, rhs: 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<<Other>(lhs: Self, rhs: Other) -> Self where Other : BinaryInteger Declared In FixedWidthInteger func &<< <Other>(_: Self, rhs: 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<<Other>(lhs: Self, rhs: Other) -> Self where Other : BinaryInteger Declared In FixedWidthInteger func &<< <Other>(_: Self, rhs: 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. Use the masking left shift operator (&<<) when you need to perform a shift and are sure that the shift amount is in the range 0..<lhs.bitWidth. Before shifting, the masking left shift operator masks the shift to this range. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. let x: UInt8 = 30 // 0b00011110 let y = x &<< 2 // y == 120 // 0b01111000 However, if you use 8 as the shift amount, the method first masks the shift amount to zero, and then performs the shift, resulting in no change to the original value. let z = x &<< 8 // z == 30 // 0b00011110 If the bit width of the shifted integer type is a power of two, masking is performed using a bitmask; otherwise, masking is performed using a modulo operation. Parameters: lhs: The value to shift. rhs: The number of bits to shift lhs to the left. If rhs is outside the range 0..<lhs.bitWidth, it is masked to produce a value within that range. Declaration func &<<<Other>(lhs: Self, rhs: Other) -> Self where Other : BinaryInteger Declared In FixedWidthInteger