123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- import Foundation
- extension Data {
- var bytes : [UInt8]{
- return [UInt8](self)
- }
- }
- extension Data {
- struct HexEncodingOptions: OptionSet {
- let rawValue: Int
- static let upperCase = HexEncodingOptions(rawValue: 1 << 0)
- }
-
- func hexEncodedString(options: HexEncodingOptions = []) -> String {
- let format = options.contains(.upperCase) ? "%02hhX" : "%02hhx"
- return map { String(format: format, $0) }.joined()
- }
- }
- extension Data {
- var hexDescription: String {
- return reduce("") {$0 + String(format: "%02x", $1)}
- }
-
- var binaryDescription: String {
- return reduce("") {$0 + String(format: "%0b", $1)}
- }
- }
- extension Data {
- var format: String {
- let array = [UInt8](self)
- let ext: String
- switch (array[0]) {
- case 0xFF:
- ext = "jpg"
- case 0x89:
- ext = "png"
- case 0x47:
- ext = "gif"
- case 0x49, 0x4D :
- ext = "tiff"
- default:
- ext = "unknown"
- }
- return ext
- }
- }
|