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


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


用法一

操作符

<<(_:_:)

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

聲明

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

參數

lhs

要轉移的值。

rhs

lhs 向左移動的位數。

詳述

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

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

  • 使用大於或等於 lhs 位寬的 rhs 的值是 overshift ,結果為零。

  • rhs 使用任何其他值會在lhs 上執行該數量的左移。

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


let x: UInt8 = 30                 // 0b00011110
let y = x << 2
// y == 120                       // 0b01111000

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


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

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


let a = x << -3
// a == 3                         // 0b00000011
let b = x >> 3
// b == 3                         // 0b00000011

可用版本

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 向左移動的位數。

詳述

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

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

  • 使用大於或等於 lhs 位寬的 rhs 的值是 overshift ,結果為零。

  • rhs 使用任何其他值會在lhs 上執行該數量的左移。

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


let x: UInt8 = 30                 // 0b00011110
let y = x << 2
// y == 120                       // 0b01111000

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


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

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


let a = x << -3
// a == 3                         // 0b00000011
let b = x >> 3
// b == 3                         // 0b00000011

可用版本

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

相關用法


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