我有字符串变量:var str ="239A23F"如何将此字符串转换为二进制数?
str.toInt()不起作用.
这是我的功能.首先println打印正确的哈希到控制台,但在下一行程序崩溃.你能帮助我吗?
func sha256(string: NSString) -> NSString {
var data : NSData! = string.dataUsingEncoding(NSUTF8StringEncoding)
var hash = [UInt8](count: Int(CC_SHA256_DIGEST_LENGTH), repeatedValue: 0)
CC_SHA256(data.bytes, CC_LONG(data.length), &hash)
let res = NSData(bytes: hash, length: Int(CC_SHA256_DIGEST_LENGTH))
println(res)
let resstr = NSString(data: res, encoding: NSUTF8StringEncoding)
println(resstr)
return resstr
}
Run Code Online (Sandbox Code Playgroud) 我想将十六进制值转换为十进制。所以我试过这个。当值 >0 时,它工作正常。但是当 value <0 时,则返回错误的值。
let h2 = “0373”
let d4 = Int(h2, radix: 16)!
print(d4) // 883
let h3 = “FF88”
let d5 = Int(h3, radix: 16)!
print(d5) // 65416
Run Code Online (Sandbox Code Playgroud)
当我通过 FF88 时,它返回 65416。但实际上它是 -120。
现在,我正在关注这个在 Swift答案中的十进制、二进制和十六进制之间的转换。但它并不总是有效。
请在线查看此对话。请参阅下图以了解有关此对话的更多详细信息。
有没有其他解决方案可以从十六进制值中减去十进制。?
任何帮助,将不胜感激 !!