用法一
操作符
<<(_:
<<(_:_:)
返回将值的二进制表示左移指定位数的结果。
声明
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+
用法二
操作符
<<(_:
<<(_:_:)
返回将值的二进制表示左移指定位数的结果。
声明
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+
相关用法
- Swift Int32 <<=(_:_:)用法及代码示例
- Swift Int32 &=(_:_:)用法及代码示例
- Swift Int32 &<<=(_:_:)用法及代码示例
- Swift Int32 ...(_:_:)用法及代码示例
- Swift Int32 negate()用法及代码示例
- Swift Int32 multipliedFullWidth(by:)用法及代码示例
- Swift Int32 init(integerLiteral:)用法及代码示例
- Swift Int32 &(_:_:)用法及代码示例
- Swift Int32 init(truncatingIfNeeded:)用法及代码示例
- Swift Int32 +=(_:_:)用法及代码示例
- Swift Int32 init(_:radix:)用法及代码示例
- Swift Int32 &+(_:_:)用法及代码示例
- Swift Int32 !=(_:_:)用法及代码示例
- Swift Int32 -(_:)用法及代码示例
- Swift Int32 init(clamping:)用法及代码示例
- Swift Int32 ..<(_:_:)用法及代码示例
- Swift Int32 -=(_:_:)用法及代码示例
- Swift Int32 %(_:_:)用法及代码示例
- Swift Int32 init(_:)用法及代码示例
- Swift Int32 trailingZeroBitCount用法及代码示例
- Swift Int32 >>(_:_:)用法及代码示例
- Swift Int32 &>>(_:_:)用法及代码示例
- Swift Int32 -(_:_:)用法及代码示例
- Swift Int32 &>>=(_:_:)用法及代码示例
- Swift Int32 &*(_:_:)用法及代码示例
注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Int32 <<(_:_:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。