當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Swift Int &>>(_:_:)用法及代碼示例


用法一

操作符

&>>(_:_:)

返回將值的二進製表示向右移動指定位數的結果,將移位量屏蔽為類型的位寬。

聲明

static func &>> (lhs: Int, rhs: Int) -> Int

參數

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

但是,如果您使用8作為移位量,該方法首先將移位量屏蔽為零,然後執行移位,導致原始值沒有變化。


let z = x &>> 8
// z == 30                        // 0b00011110

如果移位整數類型的位寬是 2 的冪,則使用位掩碼執行掩碼;否則,使用模運算執行屏蔽。

可用版本

iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+

用法二

操作符

&>>(_:_:)

返回將值的二進製表示向右移動指定位數的結果,將移位量屏蔽為類型的位寬。

聲明

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

但是,如果您使用8作為移位量,該方法首先將移位量屏蔽為零,然後執行移位,導致原始值沒有變化。


let z = x &>> 8
// z == 30                        // 0b00011110

如果移位整數類型的位寬是 2 的冪,則使用位掩碼執行掩碼;否則,使用模運算執行屏蔽。

可用版本

iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+

用法三

操作符

&>>(_:_:)

返回將值的二進製表示向右移動指定位數的結果,將移位量屏蔽為類型的位寬。

聲明

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

但是,如果您使用8作為移位量,該方法首先將移位量屏蔽為零,然後執行移位,導致原始值沒有變化。


let z = x &>> 8
// z == 30                        // 0b00011110

如果移位整數類型的位寬是 2 的冪,則使用位掩碼執行掩碼;否則,使用模運算執行屏蔽。

可用版本

iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+

相關用法


注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 Int &>>(_:_:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。