Swift 位域

用于在 Swift 中定义位域的软件包。

用法

package.swift 文件的 dependencies 部分添加以下代码行

.package(name: "BitField", url: "https://github.com/hughbe/SwiftBitField", from: "1.0.0")

要在你的库中使用该库,请 import BitField

示例

使用 getBit(_ index:) 获取原始值中基于零的索引位置的位的布尔值。

let field = BitField(rawValue: 0b10101010)
XCTAssertFalse(field.getBit(0))
XCTAssertTrue(field.getBit(1))
XCTAssertFalse(field.getBit(2))
XCTAssertTrue(field.getBit(3))
XCTAssertFalse(field.getBit(4))
XCTAssertTrue(field.getBit(5))
XCTAssertFalse(field.getBit(6))
XCTAssertTrue(field.getBit(7))

使用 getBit(offset:count:) 获取原始值中从基于零的索引位置开始的一系列位的整数值。

let field = BitField(rawValue: 0b10101010)
XCTAssertEqual(0b10101010, field.getBits(offset: 0, count: 8))
XCTAssertEqual(0b101, field.getBits(offset: 1, count: 3))
XCTAssertEqual(0b1010101, field.getBits(offset: 1, count: 7))
XCTAssertEqual(0b1, field.getBits(offset: 7, count: 1))