Добрый день, нужно узнать, как хранится тип decimal
в C#. Побитово, т.е. где мантисса, разряд и т.п.
Вольный перевод ответа на SO:
Тип decimal
хранится в 128 битах, но используется только 102 из них.
Первые три 32-битных целых представляют мантиссу, в последнем 32-битном целом:
Лучше, чем исходники, вам ответ никто не даст. Заглядываем на sourceof.net, видим вот что (убрал статические данные и константы, перевёл комментарий на русский):
public struct Decimal : IFormattable, IComparable, IConvertible, IDeserializationCallback
, IComparable<Decimal>, IEquatable<Decimal> {
// [...]
// Поля lo, mid, hi, и flags содержат представление значения типа Decimal.
// Поля lo, mid, и hi содержат 96-битную мантиссу (целочисленную часть) Decimal.
// Биты 0-15 (младшее слово) поля flags не используются и должны содержать ноль;
// биты 16-23 должны содержать значение между 0 and 28, означающее степень 10,
// на которую нужно разделить 96-битную мантиссу, чтобы получить значение Decimal;
// биты 24-30 не используются и обязаны содержать ноль;
// и наконец бит 31 означает знак значения Decimal, 0 означает положительное
// значение, а 1 - отрицательное.
//
// ВНИМАНИЕ: Не изменяйте порядок определения полей! Нативный код в этом классе
// рассчитывает на именно такой порядок.
private int flags;
private int hi;
private int lo;
private int mid;
// [...]
}
Начал учится работать в Unity3D по обучающему видео и в нем был код (который не заработал):
Проблема заключается в том - что - база растет! и переобучение происходит все через :