C# перевести массив байт

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by kusanagi, 18 Feb 2009.

  1. kusanagi

    kusanagi New Member

    Joined:
    23 Jan 2009
    Messages:
    65
    Likes Received:
    3
    Reputations:
    0
    есть массив байт. как его перевести в 62ричную систему исчисления ??)))
    конечно 62 ричная система для примера, интересует сам механизм желательно с примером
     
  2. scrat

    scrat кодер

    Joined:
    8 Apr 2007
    Messages:
    625
    Likes Received:
    541
    Reputations:
    3
    загуглил
    вообще это не очень сложно написать свой,если знать алгоритм.

    ps гугли по словам: c# base convert

    А вообще за это отвечает Convert
    Code:
    int a = Convert.ToInt32( от_куда, система счисления);
     
    #2 scrat, 18 Feb 2009
    Last edited: 18 Feb 2009
  3. kusanagi

    kusanagi New Member

    Joined:
    23 Jan 2009
    Messages:
    65
    Likes Received:
    3
    Reputations:
    0
    искал, но толи не могу найти толи не понимаю.
    мне нужно тип guid перевести в 62 ричную систему. мне сказали что можно както байты перевести напрямую, иначе большие числа получаются. и вот куда эти байты то пхать?
     
  4. geezer.code

    geezer.code Elder - Старейшина

    Joined:
    22 Jan 2007
    Messages:
    552
    Likes Received:
    358
    Reputations:
    90
    мда... Основание системы - 62. во первых основание НЕ стандартное. чтобы система была 62-ричная надо иметь 0,1,2,3... итд 62(!!!!!) обозначения для "цифр".
    А алгоритм перевода прост - есть в любом учебнике по информатике. делишь нацело N на основание системы счисления, и отмечаешь разряды...
     
  5. kusanagi

    kusanagi New Member

    Joined:
    23 Jan 2009
    Messages:
    65
    Likes Received:
    3
    Reputations:
    0
    эта система получается так- 10 цифр +26 маленьких англ. букв+26 больших. т.е. тот же гуид, но в гуиде не все буквы алфавита
    насчет алгоритма перевода ты блин прав как никогда. но я не врублюся как это закодировать. guid.newguid.getbytearray возращает массив байт и вот чем мне с ним делать? с каждым байтом? делить на 62?
     
  6. geezer.code

    geezer.code Elder - Старейшина

    Joined:
    22 Jan 2007
    Messages:
    552
    Likes Received:
    358
    Reputations:
    90
    ты так и не удосужился посмотреть учебник элементарной информатики ?

    GUID (Globally Unique Identifier) — статистически уникальный 128-битный идентификатор.
    128 бит - значит ни в какой тип не влезет. Самый явный способ: тебе придется написать программу, которая будет производить аналог вычитания столбиком(как в 1-4 классе: арифметика - "один заняли один в уме") просто число ОЧЕНЬ большое.
    Вычитаешь по 62 до тех пор, пока не получишь 62 раза по 62 и записываешь разряды.

    зы
    именно 62 ? если это будет степень двойки , наверняка можно будет решить гораздо проще.
     
    #6 geezer.code, 18 Feb 2009
    Last edited: 18 Feb 2009
  7. kusanagi

    kusanagi New Member

    Joined:
    23 Jan 2009
    Messages:
    65
    Likes Received:
    3
    Reputations:
    0

    )))))
    ладно спрошу проще- как получить гуид как на ютубе типа такого ZolpYVes3_4
    сказали что это из 16 разрядного гуида переводят
     
  8. geezer.code

    geezer.code Elder - Старейшина

    Joined:
    22 Jan 2007
    Messages:
    552
    Likes Received:
    358
    Reputations:
    90
    эмм я чтото путаю или "_" - не входит в 62 символа ?
     
    1 person likes this.
  9. kusanagi

    kusanagi New Member

    Joined:
    23 Jan 2009
    Messages:
    65
    Likes Received:
    3
    Reputations:
    0
    ну может у них чтото другое используется. кстати у них ид из 11 символов
    хотя врядли они генерят вручную строку простым рандомом