Сколько символов есть в GUID?



используя кодировку ASCII, сколько символов есть в GUID?



меня интересует стиль Microsoft, который включает в себя фигурные скобки и тире.

998   4  

4 ответов:

С MSDN:

GUID-это 128-битное значение, состоящее из одной группы из 8 шестнадцатеричных цифр, последовали три группы по 4 шестнадцатеричные цифры каждый, а затем одна группа из 12 шестнадцатеричных цифр. В следующем примере GUID показывает групп шестнадцатеричных цифр в идентификатор GUID: 6B29FC40-CA47-1067-B31D-00DD010662DA

С Википедия:

часто фигурные скобки добавляются, чтобы заключить этот выше формат, как таковой:

{3F2504E0-4F89-11D3-9A0C-0305E82C3301}

таким образом, в общей сложности 38 символов в типичной шестнадцатеричной кодировке с фигурными скобками.

Адам

TL; DR: нет.

Я думаю, что важно помнить, что стиль отображения GUID от microsoft-это только представление GUID, которое на самом деле является 16-байтовым целым значением (как заявил Майкл Трауш).

вы можете также представить его в различных, более компактных способов путем преобразования байтов в другой набор символов (например, ASCII).

теоретически вы можете отображать каждый байт в виде расширенного символа ASCII (255 символов), что позволит вам сохранить GUID в виде строки длиной 16 символов.

Это было бы не очень читаемым, хотя, потому что он будет включать пробелы (CR, пробел, tab и т. д.) и другие специальные символы, поэтому это будет иметь смысл только в том случае, если вы хотите эффективное сохранение GUID в нечеловеческом читаемом символьном формате, например в базе данных, которая изначально не поддерживает GUID или быстрое сопоставление небольших двоичных значений: http://en.wikipedia.org/wiki/Extended_ASCII

IMHO наиболее читаемый способ отображения GUID более компактным было бы использовать кодировку Base64, которая позволяет сохранить его в строке длиной 22 символа и сделать его похожим на это:

7v26IM9P2kmVepd7ZxuXyQ==

но как Джефф Этвуд состояния на его сайте, вы также можете нажать GUID в кодированную строку ASCII85 с 20 символами:

[Rb*hlkkXVW+q4s(YSF0

для большего вдохновения см.: http://www.codinghorror.com/blog/2005/10/equipping-our-ascii-armor.html

Как упоминал Адам из цитаты MSDN, UUID - это 128-битные значения. Это означает, что они занимают 16 байт памяти для хранения значения. Текстовое представление займет 32 байта (два байта для каждого отдельного байта), плюс 4 дефиса, плюс две скобки, если вы хотите включить их; это составляет 38 байт.

просто имейте в виду, что если вы предоставляете UUID пользователям вашего программного обеспечения, они могут предоставить UUID С или без скобок. Если вы храните значение в любом месте, это лучше всего хранить его в виде 16-байтового двоичного представления. Если вы взаимодействуете с другими реализациями UUID, вы можете использовать базовый текстовый формат для взаимодействия, поскольку разные реализации делают разные вещи с порядком байтов при хранении двоичного значения UUID.

длина зависит от кодировки. Вы можете получить стандартные кодировки и длину с помощью этого фрагмента:

public void Main() 
{
    var guid = Guid.Empty;
    Write(guid, "N"); // 32 characters
    Write(guid, "D"); // 36 characters (default)
    Write(guid, "B"); // 38 characters
    Write(guid, "P"); // 38 characters
    Write(guid, "X"); // 68 characters
}    

private void Write(Guid guid, string format) 
{
    var guidString = guid.ToString(format);
    Console.WriteLine("{0}: {1} ({2} characters)", format, guidString, guidString.Length);
}

посмотреть Guid.Метод ToString дополнительные сведения:

Comments

    Ничего не найдено.