I want to convert Hexa value into decimal. So I have tried this. When value is >0, then it is working fine. But when value is <0, then is returns wrong value.
<
Hexadecimal conversion depends on integer Type ( signed , unsigned ) and size ( 64 bits , 32 bits , 16 bits . . ) , this is what you missed .
signed , unsigned
64 bits , 32 bits , 16 bits . .
source code :
let h3 = "FF88" let d5 = Int16(truncatingBitPattern: strtoul(h3, nil, 16)) print(d5) // -120