18 #ifndef _DECAF_LANG_LONG_H_
19 #define _DECAF_LANG_LONG_H_
40 static const int SIZE = 64;
43 static const long long MAX_VALUE = (
long long)0x7FFFFFFFFFFFFFFFLL;
46 static const long long MIN_VALUE = (
long long)0x8000000000000000LL;
53 Long(
long long value );
65 Long(
const std::string& value );
77 virtual int compareTo(
const Long& l )
const;
84 return this->value == l.value;
93 return this->value == l.value;
103 return this->value < l.value;
114 virtual int compareTo(
const long long& l )
const;
120 bool equals(
const long long& l )
const {
121 return this->value == l;
130 return this->value == l;
140 return this->value < l;
146 std::string toString()
const;
153 return (
double)this->value;
161 return (
float)this->value;
169 return (
unsigned char)this->value;
177 return (
short)this->value;
185 return (
int)this->value;
206 static int bitCount(
long long value );
223 static Long decode(
const std::string& value );
235 static long long highestOneBit(
long long value );
247 static long long lowestOneBit(
long long value );
266 static int numberOfLeadingZeros(
long long value );
278 static int numberOfTrailingZeros(
long long value );
293 static long long parseLong(
const std::string& value );
307 static long long parseLong(
const std::string& value,
int radix );
315 static long long reverseBytes(
long long value );
323 static long long reverse(
long long value );
342 static long long rotateLeft(
long long value,
int distance );
361 static long long rotateRight(
long long value,
int distance );
370 static int signum(
long long value );
377 static std::string toString(
long long value );
402 static std::string toString(
long long value,
int radix );
423 static std::string toHexString(
long long value );
443 static std::string toOctalString(
long long value );
460 static std::string toBinaryString(
long long value );
468 return Long( value );
481 static Long valueOf(
const std::string& value );
495 static Long valueOf(
const std::string& value,
int radix );
499 static long long parse(
const std::string& value,
int offset,
500 int radix,
bool negative );