第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Swift本機(jī)函數(shù)將數(shù)字作為十六進(jìn)制字符串

Swift本機(jī)函數(shù)將數(shù)字作為十六進(jìn)制字符串

FFIVE 2019-11-29 15:26:38
是否有任何(至少整數(shù))數(shù)字以本機(jī)Swift方式在字符串中獲取其十六進(jìn)制表示形式?反之。它一定不能使用Foundation。例如,String類(lèi)具有一個(gè)函數(shù)func toInt() -> Int?它將代表整數(shù)的字符串轉(zhuǎn)換為其Int值。我正在尋找類(lèi)似的東西,使用十六進(jìn)制字符串。我知道這很容易實(shí)現(xiàn),但是如果Swift已經(jīng)有了,那就更好了。否則,如果您已經(jīng)對(duì)String和Int進(jìn)行了擴(kuò)展以實(shí)現(xiàn)以下目的:let anHex = "0xA0"if let anInt = anHex.toInt() {   println(anInt)               // prints 128   println(anInt.toHexString()) // prints "0xA0"}我知道這不是火箭科學(xué),但以防萬(wàn)一,請(qǐng)分享。PS:這類(lèi)似于此問(wèn)題,不同之處在于它與Foundation框架非常相關(guān),而我不在代碼中使用它(也未導(dǎo)入其他任何東西),現(xiàn)在我想將其保留在這樣,也用于學(xué)習(xí)目的。
查看完整描述

3 回答

?
墨色風(fēng)雨

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊

更新:Xcode 7.2?Swift 2.1.1


extension String {

    var drop0xPrefix:          String { return hasPrefix("0x") ? String(characters.dropFirst(2)) : self }

    var drop0bPrefix:          String { return hasPrefix("0b") ? String(characters.dropFirst(2)) : self }

    var hexaToDecimal:            Int { return Int(drop0xPrefix, radix: 16) ?? 0 }

    var hexaToBinaryString:    String { return String(hexaToDecimal, radix: 2) }

    var decimalToHexaString:   String { return String(Int(self) ?? 0, radix: 16) }

    var decimalToBinaryString: String { return String(Int(self) ?? 0, radix: 2) }

    var binaryToDecimal:          Int { return Int(drop0bPrefix, radix: 2) ?? 0 }

    var binaryToHexaString:    String { return String(binaryToDecimal, radix: 16) }

}


extension Int {

    var toBinaryString: String { return String(self, radix: 2) }

    var toHexaString:   String { return String(self, radix: 16) }

}

測(cè)試:


print("7fffffffffffffff".hexaToDecimal)      // "9223372036854775807" decimal integer

print("0x7fffffffffffffff".hexaToDecimal)    // "9223372036854775807" decimal integer

print("7fffffffffffffff".hexaToBinaryString) // "111111111111111111111111111111111111111111111111111111111111111" binary (String)

print("0x7fffffffffffffff".hexaToBinaryString) // "111111111111111111111111111111111111111111111111111111111111111"


print("255".decimalToHexaString)   // "ff"       hexa (String)

print("255".decimalToBinaryString) // "11111111" binary (String)

0b11111111


print("11111111".binaryToHexaString)      // "ff"  hexa (String)

print("0b11111111".binaryToHexaString)    // "ff"  hexa (String)

print("11111111".binaryToDecimal)         // 255 decimal (Int)

print("0b11111111".binaryToDecimal)       // 255 decimal (Int)


print(255.toBinaryString) // "11111111" binary (String)

print(255.toHexaString)   // "ff"       hexadecimal (String)


查看完整回答
反對(duì) 回復(fù) 2019-11-29
?
一只甜甜圈

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊

對(duì)于Float,如果您可能希望將IEEE754浮點(diǎn)數(shù)設(shè)置為HEX


extension Float {

 func floatToHex()->String {

    return String(self.bitPattern, radix: 16, uppercase: true)

 }

}

let f:Float = 3.685746e+19

let hex = f.floatToHex()


print("\(hex)")//5FFFC000

反之亦然


extension String {


 func hexToFloat() -> Float {

    var toInt = Int32(truncatingBitPattern: strtol(self, nil, 16))

    var toInt = Int32(_truncatingBits: strtoul(self, nil, 16)) //For Swift 5

    var float:Float32!

    memcpy(&float, &toInt, MemoryLayout.size(ofValue: float))

    return float

 }

}


查看完整回答
反對(duì) 回復(fù) 2019-11-29
  • 3 回答
  • 0 關(guān)注
  • 1001 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)