atoi() из строки шестнадцатеричного представления

Нужно сделать int из строки шестнадцатеричного представления, например "0xFA" или лучше "FA". Нужно что-то вроде atoi("FA"). Есть ли стандартные решения для этого?


person vico    schedule 18.12.2013    source источник
comment
Вы имеете в виду что-то вроде strtol?   -  person Jongware    schedule 18.12.2013
comment
Знайте свои инструменты   -  person user694733    schedule 18.12.2013


Ответы (1)


Попробуйте использовать strtol():

strtol("FA", NULL, 16);
person V-X    schedule 18.12.2013
comment
Примечание: он также работает с префиксом 0xFA: (необязательно) (0x или 0X), указывающим шестнадцатеричное основание (применяется только в том случае, если основание равно 16 или ​0​) - person Jongware; 18.12.2013
comment
Для беззнаковых вы должны использовать strtoul() для правильной обработки таких строк, как 0x81234567, иначе вы получите возврат 0xFFFFFFFF. - person gjcamann; 13.05.2014