演算子


&<<(_:_:)


値の二進表現を指定された桁数だけ左にシフトした結果を返し、シフト量は型のビット幅にマスクされます。


iOS 8.0+ iPadOS 8.0+ Mac Catalyst 13.0+ macOS 10.10+

tvOS 9.0+ visionOS 1.0+ watchOS 2.0+

static func &<< (lhs: Self, rhs: Self) -> Self

必須 デフォルトの実装が提供されます。





パラメータ


lhs

シフトすべき値。


rhs

lhs を左にシフトすべきビット数。rhs0..<lhs.bitWidth の範囲外にある場合、その範囲内の値を生成するためにそれはマスクされます。



議論


シフトを実行する必要があり、シフト量が 0 から <lhs.bitWidth の範囲であることが確実な場合は、マスクする左シフト演算子 (&<<) を使用します。シフトを実行する前に、マスクする左シフト演算子はシフトをこの範囲にマスクします。シフトは、このマスクされた値を使用して実行されます。


以下の例では、x を 8 ビットの符号なし整数型 UInt8 のインスタンスとして定義しています。x への演算で右辺の値として 2 を使用する場合、シフト量にマスクは不要です。


  1. let x: UInt8 = 30 // 0b00011110
  2. let y = x &<< 2
  3. // y == 120  // 0b01111000

ただし、シフト量として 8 を使用すると、メソッドは最初にシフト量を 0 にマスクしてからシフトを実行するため、元の値は変更されません。


  1. let z = x &<< 8
  2. // z == 30  // 0b00011110

シフトされた整数型のビット幅が 2 の累乗の場合、ビットマスクを使用してマスクが実行されます。それ以外の場合は、モジュロ演算を使用してマスクが実行されます。





デフォルトの実装


FixedWidthInteger の実装


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

値の二進表現を指定された桁数だけ左にシフトした結果を返します。シフト量は型のビット幅にマスクされます。


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

値の二進表現を指定された桁数だけ左にシフトした結果を返します。シフト量は型のビット幅にマスクされます。














トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ