2013-12-18 28 views
20

"0xFA" veya daha iyi "FA" gibi altıgen gösterimler dizisinden int yapılması gerekir. atoi("FA") gibi bir şeye ihtiyacınız var. Bunun için herhangi bir standart çözüm var mı?atoi() onaltılık gösterimi dizgisinden

+4

Something [ 'strtol'] (http://en.cppreference.com/w/c/string/byte/strtol) mı demek? – usr2564301

+3

[Araçlarınızı öğrenin] (http://en.cppreference.com/w/c) – user694733

cevap

47

strtol() kullanmayı deneyin: gibi

strtol("FA", NULL, 16); 
+0

Not: Aynı zamanda '0xFA': (isteğe bağlı) önekiyle (0x veya 0X) onaltılık tabanını belirten de çalışır (yalnızca base is 16 or 0) " – usr2564301

+15

" imzasız için, "0x81234567" gibi dizeleri düzgün şekilde işlemek için strtoul() kullanmalısınız, aksi takdirde 0xFFFFFFFF döndürür. – gjcamann