C言語でunsigned long以上の数字の書かれた文字列を整数に変換して、16進数に変換したいのですが何かいい方法はないでしょうか?