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.
Required. Default implementation provided.
SDK
- Xcode 10.0+
Framework
- Swift Standard Library
Declaration
Parameters
lhs
The value to shift.
rhs
The number of bits to shift
lhs
to the left. Ifrhs
is outside the range0..<lhs
, it is masked to produce a value within that range..bit Width
Discussion
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
. 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.
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.
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.