我想为所有整数类型创建一个Integer-to-Hex函数.
对于1字节的Int8,它返回两个字母,例如0A
对于2字节的Int16,它返回四个字母,例如0A0B
对于8字节的Int64,它返回16个字母,例如0102030405060708
func hex(v: Int) -> String {
var s = ""
var i = v
for _ in 0..<sizeof(Int)*2 {
s = String(format: "%x", i & 0xF) + s
i = i >> 4
}
return s
}
func hex(v: Int64) -> String {
var s = ""
var i = v
for _ in 0..<sizeof(Int64)*2 {
s = String(format: "%x", i & 0xF) + s
i = i >> 4
}
return s
}
func hex(v: …Run Code Online (Sandbox Code Playgroud) 与其他语言相比,Apple吹嘘它的快速性能.直到最近,当我开始在Swift中编写一些代码时,我从未怀疑过这一点.
我在Swift中实现了xorshift算法,只是发现Swift版本比Delphi慢大约80倍.
Xorshift在http://en.wikipedia.org/wiki/Xorshift中有描述
SWIFT版本:
// xcrun -sdk macosx10.10 swiftc main.swift
import Foundation
func xor_shift(x0: UInt32, y0: UInt32, z0: UInt32, w0: UInt32) -> () -> UInt32 {
var x = x0
var y = y0
var z = z0
var w = w0
func num() -> UInt32 {
let t = x ^ (x << 11)
x = y
y = z
z = w
w = w ^ (w >> 19) ^ (t ^ (t >> 8))
return …Run Code Online (Sandbox Code Playgroud)