예제 #1
0
        public static UInt64 parseUInt64(string param1, uint param2)
        {
            uint _loc5_ = 0;
            uint _loc3_ = 0;

            if (param2 == 0)
            {
                if (Regex.IsMatch(param1, "^0x"))
                {
                    param2 = 16;
                    _loc3_ = 2;
                }
                else
                {
                    param2 = 10;
                }
            }
            if (param2 < 2 || param2 > 36)
            {
                throw new Exception();
            }
            else
            {
                param1 = param1.ToLower();
                UInt64 _loc4_ = new UInt64();
                while (_loc3_ < param1.Length)
                {
                    _loc5_ = param1[(int)_loc3_];
                    if (_loc5_ >= CHAR_CODE_0 && _loc5_ <= CHAR_CODE_9)
                    {
                        _loc5_ = _loc5_ - CHAR_CODE_0;
                    }
                    else if (_loc5_ >= CHAR_CODE_A && _loc5_ <= CHAR_CODE_Z)
                    {
                        _loc5_ = _loc5_ - CHAR_CODE_A;
                        _loc5_ = _loc5_ + 10;
                    }
                    else
                    {
                        throw new Exception();
                    }

                    if (_loc5_ >= param2)
                    {
                        throw new Exception();
                    }
                    else
                    {
                        _loc4_.mul(param2);
                        _loc4_.add(_loc5_);
                        _loc3_++;
                        continue;
                    }
                }
                return(_loc4_);
            }
        }
예제 #2
0
파일: Int64.cs 프로젝트: tuita520/RaidBot
        public string toString(uint param1)
        {
            uint _loc4_ = 0;

            switch (high)
            {
            case 0:
                return(low.ToString());

            case -1:
                if (low == 0 && 2.147483648E9 == 0)
                {
                    return(Convert.ToString((low | (uint)2.147483648E9) - 2.147483648E9));
                }
                return(low.ToString());

            default:
                if (low == 0 && this.high == 0)
                {
                    return("0");
                }
                List <char> _loc2_ = new List <char>();
                UInt64      _loc3_ = new UInt64((uint)low, (uint)this.high);
                if (this.high < 0)
                {
                    _loc3_.add(1);
                }
                do
                {
                    _loc4_ = _loc3_.div(param1);
                    if (_loc4_ < 10)
                    {
                        _loc2_.Add((char)(_loc4_ + CHAR_CODE_0));
                    }
                    else
                    {
                        _loc2_.Add((char)(_loc4_ - 10 + CHAR_CODE_A));
                    }
                }while (_loc3_.high != 0);
                _loc2_.Reverse();
                if (this.high < 0)
                {
                    return("-" + _loc3_.low.ToString() + _loc2_);
                }
                return(_loc3_.low.ToString() + _loc2_);
            }
        }