用法一
&<<(_:_:)
声明
static func &<< (lhs: Int16, rhs: Int16) -> Int16
参数
lhs
要转移的值。
rhs
将
lhs
向左移动的位数。如果rhs
超出范围0..<lhs.bitWidth
,则会对其进行屏蔽以生成该范围内的值。
详述
当您需要执行移位并确保移位量在 0..<lhs.bitWidth
范围内时,请使用掩码左移运算符 (&<<
)。在移位之前,掩蔽左移运算符将移位掩蔽到该范围。使用此屏蔽值执行移位。
以下示例将 x
定义为 UInt8
的一个实例,这是一个 8 位无符号整数类型。如果在对 x
的操作中使用 2
作为右侧值,则移位量不需要屏蔽。
let x: UInt8 = 30 // 0b00011110
let y = x &<< 2
// y == 120 // 0b01111000
但是,如果您使用8
作为移位量,该方法首先将移位量屏蔽为零,然后执行移位,导致原始值没有变化。
let z = x &<< 8
// z == 30 // 0b00011110
如果移位整数类型的位宽是 2 的幂,则使用位掩码执行掩码;否则,使用模运算执行屏蔽。
可用版本
用法二
&<<(_:_:)
声明
static func &<< <Other>(lhs: Self, rhs: Other) -> Self where Other : BinaryInteger
参数
lhs
要转移的值。
rhs
将
lhs
向左移动的位数。如果rhs
超出范围0..<lhs.bitWidth
,则会对其进行屏蔽以生成该范围内的值。
详述
当您需要执行移位并确保移位量在 0..<lhs.bitWidth
范围内时,请使用掩码左移运算符 (&<<
)。在移位之前,掩蔽左移运算符将移位掩蔽到该范围。使用此屏蔽值执行移位。
以下示例将 x
定义为 UInt8
的一个实例,这是一个 8 位无符号整数类型。如果在对 x
的操作中使用 2
作为右侧值,则移位量不需要屏蔽。
let x: UInt8 = 30 // 0b00011110
let y = x &<< 2
// y == 120 // 0b01111000
但是,如果您使用8
作为移位量,该方法首先将移位量屏蔽为零,然后执行移位,导致原始值没有变化。
let z = x &<< 8
// z == 30 // 0b00011110
如果移位整数类型的位宽是 2 的幂,则使用位掩码执行掩码;否则,使用模运算执行屏蔽。
可用版本
用法三
&<<(_:_:)
声明
static func &<< (lhs: Self, rhs: Self) -> Self
参数
lhs
要转移的值。
rhs
将
lhs
向左移动的位数。如果rhs
超出范围0..<lhs.bitWidth
,则会对其进行屏蔽以生成该范围内的值。
详述
当您需要执行移位并确保移位量在 0..<lhs.bitWidth
范围内时,请使用掩码左移运算符 (&<<
)。在移位之前,掩蔽左移运算符将移位掩蔽到该范围。使用此屏蔽值执行移位。
以下示例将 x
定义为 UInt8
的一个实例,这是一个 8 位无符号整数类型。如果在对 x
的操作中使用 2
作为右侧值,则移位量不需要屏蔽。
let x: UInt8 = 30 // 0b00011110
let y = x &<< 2
// y == 120 // 0b01111000
但是,如果您使用8
作为移位量,该方法首先将移位量屏蔽为零,然后执行移位,导致原始值没有变化。
let z = x &<< 8
// z == 30 // 0b00011110
如果移位整数类型的位宽是 2 的幂,则使用位掩码执行掩码;否则,使用模运算执行屏蔽。
可用版本
相关用法
- Swift Int16 &<<=(_:_:)用法及代码示例
- Swift Int16 &-=(_:_:)用法及代码示例
- Swift Int16 &*(_:_:)用法及代码示例
- Swift Int16 &(_:_:)用法及代码示例
- Swift Int16 &=(_:_:)用法及代码示例
- Swift Int16 &*=(_:_:)用法及代码示例
- Swift Int16 &+=(_:_:)用法及代码示例
- Swift Int16 &>>(_:_:)用法及代码示例
- Swift Int16 &-(_:_:)用法及代码示例
- Swift Int16 &>>=(_:_:)用法及代码示例
- Swift Int16 &+(_:_:)用法及代码示例
- Swift Int16 ..<(_:)用法及代码示例
- Swift Int16 random(in:using:)用法及代码示例
- Swift Int16 ^=(_:_:)用法及代码示例
- Swift Int16 init(_:radix:)用法及代码示例
- Swift Int16 +(_:)用法及代码示例
- Swift Int16 magnitude用法及代码示例
- Swift Int16 %(_:_:)用法及代码示例
- Swift Int16 /=(_:_:)用法及代码示例
- Swift Int16 <<=(_:_:)用法及代码示例
- Swift Int16 init(truncatingIfNeeded:)用法及代码示例
- Swift Int16 <<(_:_:)用法及代码示例
- Swift Int16 random(in:)用法及代码示例
- Swift Int16 ...(_:)用法及代码示例
- Swift Int16 init(_:)用法及代码示例
注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Int16 &<<(_:_:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。