用法一
>>(_:_:)
聲明
static func >> <Other>(lhs: Self, rhs: Other) -> Self where Other : BinaryInteger
參數
lhs
要轉移的值。
rhs
向右移動
lhs
的位數。
詳述
>>
運算符執行 smart shift
,它定義了任何值移位的結果。
-
使用
rhs
的負值使用abs(rhs)
執行左移。 -
使用大於或等於
lhs
位寬的rhs
的值是overshift
。對於負值lhs
或0
對於非負值,過度移位會導致-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
可用版本
用法二
>>(_:_:)
聲明
static func >> <RHS>(lhs: Self, rhs: RHS) -> Self where RHS : BinaryInteger
參數
lhs
要轉移的值。
rhs
向右移動
lhs
的位數。
詳述
>>
運算符執行 smart shift
,它定義了任何值移位的結果。
-
使用
rhs
的負值使用abs(rhs)
執行左移。 -
使用大於或等於
lhs
位寬的rhs
的值是overshift
。對於負值lhs
或0
對於非負值,過度移位會導致-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
可用版本
相關用法
- 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 nonzeroBitCount用法及代碼示例
- Swift UInt8 ==(_:_:)用法及代碼示例
- Swift UInt8 &-=(_:_:)用法及代碼示例
- Swift UInt8 &<<(_:_:)用法及代碼示例
- Swift UInt8 init(exactly:)用法及代碼示例
- Swift UInt8 &=(_:_:)用法及代碼示例
- Swift UInt8 <<=(_:_:)用法及代碼示例
- Swift UInt8 -(_:_:)用法及代碼示例
- Swift UInt8 &(_:_:)用法及代碼示例
- Swift UInt8 %(_:_:)用法及代碼示例
- Swift UInt8 +=(_:_:)用法及代碼示例
注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 UInt8 >>(_:_:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。