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