Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.83/58: Рейтинг темы: голосов - 58, средняя оценка - 4.83
3 / 3 / 1
Регистрация: 27.06.2011
Сообщений: 101

Сколько байт занимает один символ BigInteger?

27.04.2013, 14:15. Показов 12439. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Думаю, для записи одной цифры достаточно 4 бита. Но так ли это в BigInteger? Сколько байт/бит занимает один символ BigInteger? И можно ли это как-то изменить?
Заранее благодарю за ответы!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.04.2013, 14:15
Ответы с готовыми решениями:

Сколько байт занимает символ и почему?
Добрый день, уважаемые форумчане. Всем известно что sizeof(char) == 1 .Заметил, что sizeof('1'),sizeof('/n') , равно 4. Почему так ? Было...

Как определить, сколько байт занимает массив?
Как определить сколько байт занимает массив? Приведите фрагмент кода, с помощью которого можно это определить.

Демонстрация того, сколько байт занимает каждый тип переменной
В блогах видел большую тему про переменные. Там была таблица про то, сколько байт занимает каждый тип переменной в зависимости от...

23
Неадекват
 Аватар для freeba
1501 / 1237 / 248
Регистрация: 02.04.2010
Сообщений: 2,807
27.04.2013, 21:27
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от west0293 Посмотреть сообщение
Сколько байт занимает один символ BigInteger?
Открываем рефлектор.
Декомпилим System.Numerics.BigInteger
Видим:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/// <summary>Представляет произвольно большое знаковое целое число.</summary>
    [__DynamicallyInvokable]
    [Serializable]
    public struct BigInteger : IFormattable, IComparable, IComparable<BigInteger>, IEquatable<BigInteger>
    {
        internal int _sign;
        internal uint[] _bits;
        private static readonly BigInteger s_bnMinInt = new BigInteger(-1, new uint[]
        {
            2147483648u
        });
        private static readonly BigInteger s_bnOneInt = new BigInteger(1);
        private static readonly BigInteger s_bnZeroInt = new BigInteger(0);
        private static readonly BigInteger s_bnMinusOneInt = new BigInteger(-1);
        private const int knMaskHighBit = -2147483648;
        private const uint kuMaskHighBit = 2147483648u;
        private const int kcbitUint = 32;
        private const int kcbitUlong = 64;
        private const int DecimalScaleFactorMask = 16711680;
        private const int DecimalSignMask = -2147483648;
Соответственно один символ занимает 64 байта. Два символа занимают тоже 64 байта и даже 4 символа занимают 64 байта... Дальше желающие могут сами посчитать, методы преобразования в структуре описаны.

По объему занимаемой оперативки. Следует учитывать, что BigInteger неизменяемый тип. Т.е. конструкция:
myBigInteger += myBigInteger2;
Займет в памяти объем равный sizeof(myBigInteger)+sizeof(myBigInteger 2)+sizeof(myBigInteger+myBigInteger2), старое значение myBigInteger - GC прибьет, но не сразу.
1
3 / 3 / 1
Регистрация: 27.06.2011
Сообщений: 101
27.04.2013, 22:30  [ТС]
Цитата Сообщение от Lasur Посмотреть сообщение
Ну так (170141183460469231731687303715884105727 )10 == (7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)16. Все верно.
Точно) Это я уже затупил) А как потом, сохранив в Hex в файл, из файла это число опять преобразовать в BigInteger?

Добавлено через 14 минут
Спасибо, уже нашел:
C#
1
2
3
string s = File.ReadAllText("c:\\number.txt");
            BigInteger a = BigInteger.Parse(s, NumberStyles.HexNumber);
            Console.WriteLine("Done " + a);
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
28.04.2013, 08:20
C#
1
2
BigInteger a = BigInteger.Parse(s, NumberStyles.HexNumber);
Console.WriteLine("Done " + a);
АА! Он все же вывел его на экран!
1
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
28.04.2013, 11:12
Цитата Сообщение от west0293 Посмотреть сообщение
Думаю, для записи одной цифры достаточно 4 бита. Но так ли это в BigInteger?
Да, так. Только для шестнадцатеричной цифры, а не для десятичной.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.04.2013, 11:12

Сколько байтов занимает один пиксель на экране в видеорежиме
Здравствуйте, подскажите, как подсчитать, сколько байтов занимает один пиксель на экране в видео режиме или один символ в текстовом режиме?...

Как узнать сколько места занимает один поток на сервере?
Приложение по типу клиент-сервер. Как узнать сколько места в оперативке будет занимать 1н поток (открытый сокет) при обработке запроса...

Задан один отдельный символ. Определить, сколько раз встречается этот символ в каждой строке текстового файла
Есть программа, которая считывает количество повторяемых символов в текстовом файле, и показывает его целым числом. Как задать что бы оно...

Предположим, что переменная типа CHAR занимает 1 байт, переменная типа INTEGER занимает два байта
Предположим, что переменная типа CHAR занимает 1 байт, переменная типа INTEGER занимает два байта, а переменная типа REAL занимает 4 байта....

Метод BigInteger.GreatestCommonDivisor (BigInteger, BigInteger)
Как использовать в C# windowsforms метод BigInteger.GreatestCommonDivisor (BigInteger, BigInteger)? Пример кода.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru