演算子


&>>(_:_:)


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


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 == 7// 0b00000111

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


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

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














トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ