Open1
dividingFullWidth(_:)についてのメモ
double width intergerを割って、商と余りを返す。ただし、オーバーフローしている部分は切られる。
let a: UInt8 = 5
let b: UInt16 = UInt16.max
let high = UInt8(b >> 8)
let low = UInt8(b - (UInt16(high) << 8))
let dividend = (high, low)
let v = a.dividingFullWidth(dividend)
XCTAssertEqual(v.quotient, 51)
XCTAssertEqual(UInt8(truncatingIfNeeded: 0x3333), 51)
XCTAssertEqual(v.remainder, 0)