2015-02-20 12 views
10

Maalesef, bu çok basit görünüyor, çevrimiçi olarak bulamadık.Ondalikten Onaltılı - Swift

On altıda bir UInt8 var, bir ondalığa almam gerekiyor. Bunu hızlıca nasıl başarabilirim? Örneğin

:

"ff"

Teşekkür

+1

olası yinelenen [Swift içinde bin onaltılık sayı dönüştürmek için nasıl?] (Http://stackoverflow.com/ sorular/26284223/nasıl yapılır-dönüştürülür-hex-number-to-bin-in-swift) – Amadan

+0

("decimal" ile "true" UInt8 "255" gibi, ve ondalık gösterimi olan başka bir dize değil, "255" '). – Amadan

+0

Gerçek bir UInt8 – JoeBayLD

cevap

27

Eğer bir dize temsilini varsa, "ff", UInt8(_:radix:):

'i kullanabilirsiniz.
+0

Sonuncusu, tek bir şey dışında çalışır. Tüm Int'ler 0 dışında doğrudur. 0 yerine nil döndürür ve 1'e düşer. Fikirler? – JoeBayLD

+0

Onarıyorum. Sorun var değerdi: UInt8! Ben vardım: UInt8 = 0. Şimdi çalışıyor. – JoeBayLD

+0

İyi yakalama. Cevabımı buna göre güncelledim. Teşekkürler! – Rob

2
Eğer ondalık için onaltılık dönüştürmek için fonksiyon strtoul kullanabilirsiniz

:

let result = UInt8(strtoul("ff", nil, 16)) // 255 
+0

'ye ihtiyacım var. Bir şey daha. NSData'mı yazdırırsam, . Dize dönüştürebilir ve ilk ve son karakteri kaldırabilirim. Ama bunu yapmanın en iyi yolu bu mu? – JoeBayLD

+0

Yapacak. Teşekkürler – JoeBayLD

+0

Hoş Geldiniz –

0

Bu kodu deneyin, Bu benim için çalışıyor.

// Hex bunun için bir yardımcı

let h2 = "ff" 
let d4 = Int(h2, radix: 16)! 
print(d4) 

Umut onluya bazı biri

ait