用法一
&<<(_:_:)
聲明
static func &<< (lhs: Self, rhs: Self) -> Self
參數
lhs
要轉移的值。
rhs
將
lhs
向左移動的位數。如果rhs
超出範圍0..<lhs.bitWidth
,則會對其進行屏蔽以生成該範圍內的值。
詳述
當您需要執行移位並確保移位量在 0..<lhs.bitWidth
範圍內時,請使用掩碼左移運算符 (&<<
)。在移位之前,掩蔽左移運算符將移位掩蔽到該範圍。使用此屏蔽值執行移位。
以下示例將 x
定義為 UInt8
的一個實例,這是一個 8 位無符號整數類型。如果在對 x
的操作中使用 2
作為右側值,則移位量不需要屏蔽。
let x: UInt8 = 30 // 0b00011110
let y = x &<< 2
// y == 120 // 0b01111000
但是,如果您使用8
作為移位量,該方法首先將移位量屏蔽為零,然後執行移位,導致原始值沒有變化。
let z = x &<< 8
// z == 30 // 0b00011110
如果移位整數類型的位寬是 2 的冪,則使用位掩碼執行掩碼;否則,使用模運算執行屏蔽。
可用版本
用法二
&<<(_:_:)
聲明
static func &<< <Other>(lhs: Self, rhs: Other) -> Self where Other : BinaryInteger
參數
lhs
要轉移的值。
rhs
將
lhs
向左移動的位數。如果rhs
超出範圍0..<lhs.bitWidth
,則會對其進行屏蔽以生成該範圍內的值。
詳述
當您需要執行移位並確保移位量在 0..<lhs.bitWidth
範圍內時,請使用掩碼左移運算符 (&<<
)。在移位之前,掩蔽左移運算符將移位掩蔽到該範圍。使用此屏蔽值執行移位。
以下示例將 x
定義為 UInt8
的一個實例,這是一個 8 位無符號整數類型。如果在對 x
的操作中使用 2
作為右側值,則移位量不需要屏蔽。
let x: UInt8 = 30 // 0b00011110
let y = x &<< 2
// y == 120 // 0b01111000
但是,如果您使用8
作為移位量,該方法首先將移位量屏蔽為零,然後執行移位,導致原始值沒有變化。
let z = x &<< 8
// z == 30 // 0b00011110
如果移位整數類型的位寬是 2 的冪,則使用位掩碼執行掩碼;否則,使用模運算執行屏蔽。
可用版本
用法三
&<<(_:_:)
聲明
static func &<< (lhs: UInt8, rhs: UInt8) -> UInt8
參數
lhs
要轉移的值。
rhs
將
lhs
向左移動的位數。如果rhs
超出範圍0..<lhs.bitWidth
,則會對其進行屏蔽以生成該範圍內的值。
詳述
當您需要執行移位並確保移位量在 0..<lhs.bitWidth
範圍內時,請使用掩碼左移運算符 (&<<
)。在移位之前,掩蔽左移運算符將移位掩蔽到該範圍。使用此屏蔽值執行移位。
以下示例將 x
定義為 UInt8
的一個實例,這是一個 8 位無符號整數類型。如果在對 x
的操作中使用 2
作為右側值,則移位量不需要屏蔽。
let x: UInt8 = 30 // 0b00011110
let y = x &<< 2
// y == 120 // 0b01111000
但是,如果您使用8
作為移位量,該方法首先將移位量屏蔽為零,然後執行移位,導致原始值沒有變化。
let z = x &<< 8
// z == 30 // 0b00011110
如果移位整數類型的位寬是 2 的冪,則使用位掩碼執行掩碼;否則,使用模運算執行屏蔽。
可用版本
相關用法
- Swift UInt8 &<<=(_:_:)用法及代碼示例
- Swift UInt8 &-=(_:_:)用法及代碼示例
- Swift UInt8 &=(_:_:)用法及代碼示例
- Swift UInt8 &(_:_:)用法及代碼示例
- Swift UInt8 &*(_:_:)用法及代碼示例
- Swift UInt8 &*=(_:_:)用法及代碼示例
- Swift UInt8 &>>=(_:_:)用法及代碼示例
- Swift UInt8 &-(_:_:)用法及代碼示例
- Swift UInt8 &+(_:_:)用法及代碼示例
- Swift UInt8 &+=(_:_:)用法及代碼示例
- Swift UInt8 &>>(_:_:)用法及代碼示例
- Swift UInt8 ~(_:)用法及代碼示例
- Swift UInt8 leadingZeroBitCount用法及代碼示例
- Swift UInt8 init(integerLiteral:)用法及代碼示例
- Swift UInt8 ..<(_:_:)用法及代碼示例
- Swift UInt8 *=(_:_:)用法及代碼示例
- Swift UInt8 multipliedFullWidth(by:)用法及代碼示例
- Swift UInt8 ^=(_:_:)用法及代碼示例
- Swift UInt8 init(clamping:)用法及代碼示例
- Swift UInt8 init(truncatingIfNeeded:)用法及代碼示例
- Swift UInt8 *(_:_:)用法及代碼示例
- Swift UInt8 trailingZeroBitCount用法及代碼示例
- Swift UInt8 +(_:)用法及代碼示例
- Swift UInt8 >>=(_:_:)用法及代碼示例
- Swift UInt8 >>(_:_:)用法及代碼示例
注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 UInt8 &<<(_:_:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。