PDA

Просмотр полной версии : C# перевести массив байт


kusanagi
18.02.2009, 17:57
есть массив байт. как его перевести в 62ричную систему исчисления ??)))
конечно 62 ричная система для примера, интересует сам механизм желательно с примером

scrat
18.02.2009, 18:07
загуглил (http://www.vbforums.com/showthread.php?t=271359)
вообще это не очень сложно написать свой,если знать алгоритм.

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

А вообще за это отвечает Convert
int a = Convert.ToInt32( от_куда, система счисления);

kusanagi
18.02.2009, 20:41
загуглил (http://www.vbforums.com/showthread.php?t=271359)
вообще это не очень сложно написать свой,если знать алгоритм.

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

А вообще за это отвечает Convert
int a = Convert.ToInt32( от_куда, система счисления);

искал, но толи не могу найти толи не понимаю.
мне нужно тип guid перевести в 62 ричную систему. мне сказали что можно както байты перевести напрямую, иначе большие числа получаются. и вот куда эти байты то пхать?

geezer.code
18.02.2009, 21:45
искал, но толи не могу найти толи не понимаю.
мне нужно тип guid перевести в 62 ричную систему. мне сказали что можно както байты перевести напрямую, иначе большие числа получаются. и вот куда эти байты то пхать?

мда... Основание системы - 62. во первых основание НЕ стандартное. чтобы система была 62-ричная надо иметь 0,1,2,3... итд 62(!!!!!) обозначения для "цифр".
А алгоритм перевода прост - есть в любом учебнике по информатике. делишь нацело N на основание системы счисления, и отмечаешь разряды...

kusanagi
18.02.2009, 21:59
мда... Основание системы - 62. во первых основание НЕ стандартное. чтобы система была 62-ричная надо иметь 0,1,2,3... итд 62(!!!!!) обозначения для "цифр".
А алгоритм перевода прост - есть в любом учебнике по информатике. делишь нацело N на основание системы счисления, и отмечаешь разряды...

эта система получается так- 10 цифр +26 маленьких англ. букв+26 больших. т.е. тот же гуид, но в гуиде не все буквы алфавита
насчет алгоритма перевода ты блин прав как никогда. но я не врублюся как это закодировать. guid.newguid.getbytearray возращает массив байт и вот чем мне с ним делать? с каждым байтом? делить на 62?

geezer.code
18.02.2009, 22:13
эта система получается так- 10 цифр +26 маленьких англ. букв+26 больших. т.е. тот же гуид, но в гуиде не все буквы алфавита
насчет алгоритма перевода ты блин прав как никогда. но я не врублюся как это закодировать. guid.newguid.getbytearray возращает массив байт и вот чем мне с ним делать? с каждым байтом? делить на 62?
ты так и не удосужился посмотреть учебник элементарной информатики ?

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

зы
именно 62 ? если это будет степень двойки , наверняка можно будет решить гораздо проще.

kusanagi
18.02.2009, 23:41
ты так и не удосужился посмотреть учебник элементарной информатики ?




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

geezer.code
19.02.2009, 23:12
)))))
ладно спрошу проще- как получить гуид как на ютубе типа такого ZolpYVes3_4
сказали что это из 16 разрядного гуида переводят
эмм я чтото путаю или "_" - не входит в 62 символа ?

kusanagi
21.02.2009, 00:47
ну может у них чтото другое используется. кстати у них ид из 11 символов
хотя врядли они генерят вручную строку простым рандомом