The value to shift. シフトする値。
&<<(_:_:)
Availability
- iOS 8.0+
- iPadOS 8.0+
- macOS 10.10+
- Mac Catalyst 13.0+
- tvOS 9.0+
- watchOS 2.0+
- Xcode 10.0+
Technology
- Swift Standard Library Swift標準ライブラリ
Declaration 宣言
Parameters パラメータ
lhs
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 lhs
から左へとシフトします。rhs
が範囲0..<lhs
の外側ならば、それはマスクされてその範囲内の値を生み出します。.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.
マスク左シフト演算子(&<<
)を、あなたがあるシフトを実行する、そしてシフト量が範囲0..<lhs
の中であるのを確実にする必要がある場合に使ってください。シフトする前に、マスク左シフト演算子は、シフトをマスクしてこの範囲にします。シフトは、このマスクされた値を使って実行されます。
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.
以下の例は、x
をUInt8
のインスタンス、ある8ビットの、符号なし整数型として定義します。あなたが2
を右手側の値としてx
に関する演算において使うならば、シフト量はマスクを必要としません。
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.
しかしながら、あなたが8
をシフト量として使うならば、メソッドは最初にそのシフト量をマスクしてゼロにして、それからシフトを実行して、元の値に対して変更しないという結果になります。
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. シフトされる整数型のビット幅が2の冪ならば、マスクはビットマスクを使って実行されます;そうでなければ、マスクはモジュロ演算を使って実行されます。
Relationships 関係
From Protocol 由来プロトコル
See Also 参照
Bit Shift ビットシフト
static func << <Other>(Int, Other) -> Int
static func << <RHS>(Int, RHS) -> Int
static func <<= <Other>(inout Int, Other)
static func >> <Other>(Int, Other) -> Int
static func >> <RHS>(Int, RHS) -> Int
static func >>= <Other>(inout Int, Other)
static func &<< <Other>(Int, Other) -> Int
static func &<<= (inout Int, Int)
static func &<<= <Other>(inout Int, Other)
static func &>> (Int, Int) -> Int
static func &>> <Other>(Int, Other) -> Int
static func &>>= (inout Int, Int)
static func &>>= <Other>(inout Int, Other)