00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef IXLIB_NUMCONV
00011 #define IXLIB_NUMCONV
00012
00013
00014
00015
00016 #include <ixlib_base.hh>
00017 #include <ixlib_string.hh>
00018
00019
00020
00021
00022
00023 #define IXLIB_NUMCHARS "0123456789ABCDEF"
00024
00025
00026
00027
00028
00029 namespace ixion {
00030 string float2dec(double value,unsigned int precision = 20);
00031 string unsigned2base(unsigned long value,char digits = 0,char radix = 10);
00032 inline string unsigned2dec(unsigned long value,char digits = 0)
00033 { return unsigned2base(value,digits,10); }
00034 inline string unsigned2hex(unsigned long value,char digits = 0)
00035 { return unsigned2base(value,digits,16); }
00036 inline string unsigned2bin(unsigned long value,char digits = 0)
00037 { return unsigned2base(value,digits,2); }
00038 inline string unsigned2oct(unsigned long value,char digits = 0)
00039 { return unsigned2base(value,digits,8); }
00040 string signed2base(signed long value,char digits = 0,char radix = 10);
00041 inline string signed2dec(signed long value,char digits = 0)
00042 { return signed2base(value,digits,10); }
00043 inline string signed2hex(signed long value,char digits = 0)
00044 { return signed2base(value,digits,16); }
00045 inline string signed2bin(signed long value,char digits = 0)
00046 { return signed2base(value,digits,2); }
00047 inline string signed2oct(signed long value,char digits = 0)
00048 { return signed2base(value,digits,8); }
00049
00050 string bytes2dec(TSize bytes);
00051
00052 unsigned long evalNumeral(string const &numeral,unsigned radix = 10);
00053 double evalFloat(string const &numeral);
00054 unsigned long evalUnsigned(string const &numeral,unsigned default_base = 10);
00055 signed long evalSigned(string const &numeral,unsigned default_base = 10);
00056 }
00057
00058
00059
00060
00061 #endif