1. C# / Говнокод #27089

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    public static long ToNotation(int n, int notation)
            {
                var result = 0;
    
                var values = new Stack<int>();
    
                if (notation == n)
                    return n;
    
    
                if (notation > n)
                    return 0;
    
                while (n / notation > 0)
                {
                    values.Push(n % notation);
                    n /= notation;
                }
    
                values.Push(n);
    
                int offset = 1;
                var Array = values.ToArray();
    
                for (int i = Array.Length - 1; i >= 0; i--)
                {
                    result += Array[i] * offset;
                    offset *= 10;
                }
    
                return result;
            }

    Пероевод в системы счисления

    Запостил: techlead_seneor_228, 07 Ноября 2020

    Комментарии (11) RSS

    • Я тебя услышал. Теперь смотрим, как это делается на языке для белых:
      $number=base_convert($number, 10, 2);
      Ответить
    • Во-первых, тип long хранит данные в двоичной системе счисления. Что за пиздец получается в результате работы этого метода - одному Богу известно.
      Если требуется хранить представление числа в другой системе счисления (в том числе десятичной) - используется string или на худой конец массив. А лучше всего написать класс обёртку, которое будет внутри себя хранить значение числа и его базу, и переопределить в этом классе метод ToString().

      Во-вторых, работы со строковым представлением числа с базой отличающейся от 10 в C# есть методы Convert.ToInt64(text, base) и Convert.ToString(number, base)
      Ответить

    Добавить комментарий