演算子


&>>=(_:_:)


値の二進表現を指定された桁数だけ右にシフトした結果を計算し、シフト量を型のビット幅にマスクして、結果を左辺の変数に格納します。


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

tvOS 9.0+ visionOS 1.0+ watchOS 2.0+

static func &>>= <Other>(lhs: inout Self, rhs: Other) where Other : BinaryInteger




パラメータ


lhs

シフトすべき値。


rhs

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



議論


rhs に渡された値はマスクされ、0..<lhs.bitWidth の範囲の値が生成され、&>>= 演算子はマスクシフトを実行します。シフトはこのマスクされた値を用いて実行されます。


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


  1. let x: UInt8 = 30 // 0b00011110
  2. x = &>>= 2
  3. // y == 7// 0b00000111

ただし、rhs として 19 を使用する場合、この操作では最初に rhs を 3 にビットマスクし、次にそのマスクされた値を lhs をシフトするビット数として使用します。


  1. var y: UInt8 = 30 // 0b00011110
  2. y &>>= 19
  3. // y == 3// 0b00000011













トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ