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


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


用法一

操作符

>>(_:_:)

返回將值的二進製表示向右移動指定位數的結果。

聲明

static func >> <Other>(lhs: Self, rhs: Other) -> Self where Other : BinaryInteger

參數

lhs

要轉移的值。

rhs

向右移動 lhs 的位數。

詳述

>> 運算符執行 smart shift ,它定義了任何值移位的結果。

  • 使用 rhs 的負值使用 abs(rhs) 執行左移。

  • 使用大於或等於 lhs 位寬的 rhs 的值是 overshift 。對於負值 lhs0 對於非負值,過度移位會導致 -1

  • rhs 使用任何其他值都會對lhs 執行該量的右移。

以下示例將 x 定義為 UInt8 的一個實例,這是一個 8 位無符號整數類型。如果在對 x 的操作中使用 2 作為右側值,則該值將右移兩位。


let x: UInt8 = 30                 // 0b00011110
let y = x >> 2
// y == 7                         // 0b00000111

如果將 11 用作 rhs ,則 x 會過度移位,使其所有位都設置為零。


let z = x >> 11
// z == 0                         // 0b00000000

使用負值作為 rhs 與使用 abs(rhs) 執行左移相同。


let a = x >> -3
// a == 240                       // 0b11110000
let b = x << 3
// b == 240                       // 0b11110000

對負值進行右移操作 “fill in” 用 1 代替 0 的高位。


let q: Int8 = -30                 // 0b11100010
let r = q >> 2
// r == -8                        // 0b11111000


let s = q >> 11
// s == -1                        // 0b11111111

可用版本

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

用法二

操作符

>>(_:_:)

返回將值的二進製表示向右移動指定位數的結果。

聲明

static func >> <RHS>(lhs: Self, rhs: RHS) -> Self where RHS : BinaryInteger

參數

lhs

要轉移的值。

rhs

向右移動 lhs 的位數。

詳述

>> 運算符執行 smart shift ,它定義了任何值移位的結果。

  • 使用 rhs 的負值使用 abs(rhs) 執行左移。

  • 使用大於或等於 lhs 位寬的 rhs 的值是 overshift 。對於負值 lhs0 對於非負值,過度移位會導致 -1

  • rhs 使用任何其他值都會對lhs 執行該量的右移。

以下示例將 x 定義為 UInt8 的一個實例,這是一個 8 位無符號整數類型。如果在對 x 的操作中使用 2 作為右側值,則該值將右移兩位。


let x: UInt8 = 30                 // 0b00011110
let y = x >> 2
// y == 7                         // 0b00000111

如果將 11 用作 rhs ,則 x 會過度移位,使其所有位都設置為零。


let z = x >> 11
// z == 0                         // 0b00000000

使用負值作為 rhs 與使用 abs(rhs) 執行左移相同。


let a = x >> -3
// a == 240                       // 0b11110000
let b = x << 3
// b == 240                       // 0b11110000

對負值進行右移操作 “fill in” 用 1 代替 0 的高位。


let q: Int8 = -30                 // 0b11100010
let r = q >> 2
// r == -8                        // 0b11111000


let s = q >> 11
// s == -1                        // 0b11111111

可用版本

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

相關用法


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