用法一
>>(_:_:)
声明
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 UInt >>=(_:_:)用法及代码示例
- Swift UInt +(_:)用法及代码示例
- Swift UInt &<<(_:_:)用法及代码示例
- Swift UInt leadingZeroBitCount用法及代码示例
- Swift UInt init(_:radix:)用法及代码示例
- Swift UInt quotientAndRemainder(dividingBy:)用法及代码示例
- Swift UInt &(_:_:)用法及代码示例
- Swift UInt &*(_:_:)用法及代码示例
- Swift UInt init(truncatingIfNeeded:)用法及代码示例
- Swift UInt *=(_:_:)用法及代码示例
- Swift UInt %(_:_:)用法及代码示例
- Swift UInt &-(_:_:)用法及代码示例
- Swift UInt +=(_:_:)用法及代码示例
- Swift UInt ==(_:_:)用法及代码示例
- Swift UInt |=(_:_:)用法及代码示例
- Swift UInt multipliedFullWidth(by:)用法及代码示例
- Swift UInt !=(_:_:)用法及代码示例
- Swift UInt +(_:_:)用法及代码示例
- Swift UInt nonzeroBitCount用法及代码示例
- Swift UInt <<=(_:_:)用法及代码示例
- Swift UInt ..<(_:)用法及代码示例
- Swift UInt ...(_:_:)用法及代码示例
- Swift UInt init(exactly:)用法及代码示例
- Swift UInt &+=(_:_:)用法及代码示例
- Swift UInt ^(_:_:)用法及代码示例
注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 UInt >>(_:_:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
