Data+Extension.swift 1.16 KB
//
//  d.swift
//  Twear
//
//  Created by yangbin on 2021/12/6.
//

import Darwin


extension Data {
    func hexToString(_ separator: String = "") -> String {
        return map { String(format: "%02X", $0) }
            .joined(separator: separator)
    }
}

extension UInt8 {
    func toBits() -> [Int] {
        var byte = self
        var bits = [Int](repeating: 0, count: 8)
        for i in 0..<8 {
            let currentBit = byte & 0x01
            if currentBit != 0 {
                bits[i] = 1
            }

            byte >>= 1
        }
        return bits
    }
    
    func toAlarmClockCycle() -> [Int] {
        var array = self.toBits()
        array.remove(at: 7)
        if array == [0, 0, 0, 0, 0, 0, 0] {
            array.insert(1, at: 0)
        } else {
            array.insert(0, at: 0)
        }
        return array
    }

}


extension Int {
    func toBits() -> [Int] {
        var byte = self
        var bits = [Int](repeating: 0, count: 11)
        for i in 0..<11 {
            let currentBit = byte & 0x01
            if currentBit != 0 {
                bits[i] = 1
            }
            byte >>= 1
        }
        return bits
    }
}