Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > .NET
Перезагрузить страницу Есть ли в C# длинная арифметика
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Exmap Exmap вне форума
Member
 
Сообщений: 1,045
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2007
По умолчанию Есть ли в C# длинная арифметика - 04.08.2008, 19:09

Доброе время суток. Вот появилось несколько вопросов по C#.
1. Есть ли в C# длинная арифметика.
2. Пусть я хочу сделать класс HugeInteger, реализующий длинную арифметику. Юзать его очень хотелось бы так:
Код:
HugeInteger a,b;
a = 1111111111111111111111111111111111111111111111111111111111111;
b = 1111111111111111111111111111111111111111111111111111111111111;
HugeInteger c = a+b;
и т.д.
Но как сделоть так, чтобы можно было писать a=111111111111111111111111111111111111111111;?
3. Есть в C# класс List<T>. Как в нём сделана такая фича, что можно написать
Код:
a[3] = 1;
Ведь a - не элемент класса int[] а всего-лишь List<int>!
4. Что обозначает слово interface.

Очень надеюсь на вашу помощь, так как в "умной книжке" (привет, fizarum ), которую я читал нет ответов на них. Заранее спасибо.
Ответить с цитированием
  (#2 (permalink)) Старый
Rius Rius вне форума
Программист
 
Аватар для Rius
 
Сообщений: 7,256
Сказал(а) спасибо: 20
Поблагодарили 910 раз(а) в 894 сообщениях
Регистрация: 27.08.2004
Адрес: Russian Federation
По умолчанию 05.08.2008, 11:11

3.
в классе можно реализовать интерфейс IList:
Код:
class test : IList
    {
        #region IList Members

        int IList.Add(object value)
        {
            throw new Exception("The method or operation is not implemented.");
        }

        void IList.Clear()
        {
            throw new Exception("The method or operation is not implemented.");
        }

        bool IList.Contains(object value)
        {
            throw new Exception("The method or operation is not implemented.");
        }

        int IList.IndexOf(object value)
        {
            throw new Exception("The method or operation is not implemented.");
        }

        void IList.Insert(int index, object value)
        {
            throw new Exception("The method or operation is not implemented.");
        }

        bool IList.IsFixedSize
        {
            get { throw new Exception("The method or operation is not implemented."); }
        }

        bool IList.IsReadOnly
        {
            get { throw new Exception("The method or operation is not implemented."); }
        }

        void IList.Remove(object value)
        {
            throw new Exception("The method or operation is not implemented.");
        }

        void IList.RemoveAt(int index)
        {
            throw new Exception("The method or operation is not implemented.");
        }

        object IList.this[int index]
        {
            get
            {
                throw new Exception("The method or operation is not implemented.");
            }
            set
            {
                throw new Exception("The method or operation is not implemented.");
            }
        }

        #endregion

        #region ICollection Members

        void ICollection.CopyTo(Array array, int index)
        {
            throw new Exception("The method or operation is not implemented.");
        }

        int ICollection.Count
        {
            get { throw new Exception("The method or operation is not implemented."); }
        }

        bool ICollection.IsSynchronized
        {
            get { throw new Exception("The method or operation is not implemented."); }
        }

        object ICollection.SyncRoot
        {
            get { throw new Exception("The method or operation is not implemented."); }
        }

        #endregion

        #region IEnumerable Members

        IEnumerator IEnumerable.GetEnumerator()
        {
            throw new Exception("The method or operation is not implemented.");
        }

        #endregion
    }
a[3] = 1 реализуется в коде
Код:
object IList.this[int index]
        {
            get
            {
                ...
            }
            set
            {
                ...
            }
        }
Ответить с цитированием
  (#3 (permalink)) Старый
Exmap Exmap вне форума
Member
 
Сообщений: 1,045
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2007
По умолчанию 05.08.2008, 11:32

Спасибо, Ruis. А как насчёт длинных чисел?
Ответить с цитированием
  (#4 (permalink)) Старый
Exmap Exmap вне форума
Member
 
Сообщений: 1,045
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2007
По умолчанию 05.08.2008, 13:14

Вот такой вопрос: можно ли как-нибудь прописать автоматическую конвертацию элементов одного класса в другой?
Напр.
Код:
Class1 a = new Class1();
Class2 b = new Class2();
Class1 c = a;
Class2 d = b;
a = b;
d = c;
Ответить с цитированием
  (#5 (permalink)) Старый
Rius Rius вне форума
Программист
 
Аватар для Rius
 
Сообщений: 7,256
Сказал(а) спасибо: 20
Поблагодарили 910 раз(а) в 894 сообщениях
Регистрация: 27.08.2004
Адрес: Russian Federation
По умолчанию 05.08.2008, 13:31

можно, пример:
Код:
   public Class1 a
    {
        public static implicit operator Class2(Class1 value)
        {
            return value_преобразованное_в_Class2;
        }
        public static implicit operator Class1(Class2 value)
        {
            return value_преобразованное_в_Class1;
        }
    };
a = b;
b = a;
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Exmap Exmap вне форума
Member
 
Сообщений: 1,045
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2007
По умолчанию 05.08.2008, 15:30

Спасибо усёк
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача-Паскаль. Длинная арифметика. Ksuuu Pascal 1 24.05.2011 22:57
Длинная арифметика построение двух столбиков СтуденткаЯ Delphi 1 26.12.2010 20:19
Логическая арифметика как с ней работать Minoga_dot С/С++ 4 27.07.2010 19:45
Длинная пробельная строка Rocky Офтопик 44 07.03.2010 21:44
Целочисленная арифметика Grigoriy Pascal 7 24.12.2009 04:20
Арифметика в Прологе aragohrn Prolog 24 12.06.2009 14:50
Арифметика в списках wolker Prolog 1 02.03.2009 22:48
Самая длинная ветка в дереве (наверное) Yusuke Prolog 18 05.12.2007 21:26
Арифметика поразрядная Emeryk Prolog 8 21.11.2006 19:26
Интервальная арифметика SCHOOL_2 Prolog 13 30.11.2005 00:48
Длинная строка символов без разделителей Anonymous PHP 1 15.12.2003 02:27



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов