Все они одинаковой длины. Если вы посчитаете символы за один, вы узнаете их длину.
Грег Хьюгилл, 03
1
@Greg - Это очень плохое предположение, если вы не понимаете, что длина не будет меняться.
Адам Дэвис,
8
Если бы длина менялась, то этот вопрос был бы похож на вопрос: «Какова длина веревки?» Вместо этого он спрашивает «сколько яиц в дюжине?»
Грег Хьюгилл, 03
8
Когда я искал этот вопрос в Google, каждый ответ просто указывал на определение guid. Голосуйте против меня, если хотите, но я просто пытаюсь упростить поиск ответа на этот конкретный вопрос, без необходимости подсчета для будущих спрашивающих.
Джим Графс,
2
Я понимаю, о чем вы говорите, но если кто-то только что познакомился с NewDataX, вопрос о длине актуален, и вы не можете предполагать, что то, что вы видели, является примером любого другого NewDataX, пока вы не поймете, что такое NewDataX.
GUID - это 128-битное значение, состоящее из одной группы из 8 шестнадцатеричных цифр, за которыми следуют три группы по 4 шестнадцатеричных цифры каждая, за которыми следует одна группа из 12 шестнадцатеричных цифр. В следующем примере GUID показаны группы шестнадцатеричных цифр в GUID: 6B29FC40-CA47-1067-B31D-00DD010662DA
@magnifico - см. последний абзац этого ответа: «Итак, всего 38 символов в типичной шестнадцатеричной кодировке с фигурными скобками».
Randolpho
1
Не нужно бороться с magnifico - он задал вопрос, он сам решает, кто дал наиболее подходящий ответ. Я уверен, что у него есть причины предпочесть другой ответ этому.
Адам Дэвис,
@Beska, потому что для этого нужно Stack Overflow. Вместо того, чтобы раздавать рыбу одному человеку, раздайте одну и ту же рыбу миллиону людей.
bugloaf
@bugloaf Хм. Я подозреваю, что оба моих комментария относились к чему-то, что было удалено, поскольку они не имели смысла в текущем контексте ... и первый был очень конкретным ответом на что-то исчезнувшее. Я избавился от них. (В текущем контексте это выглядело так, как будто я возражал против ответа, который является хорошим ответом, который мне не имеет смысла, и который вы правильно вызывали.)
Беска
@AdamDavis Я считаю 32, а не 38. edit: вы должны считать фигурные скобки и тире, неважно.
KyleM
32
TL; DR: Нет.
Как заявил Адам Дэвис, стиль Microsoft - это кодировка HEX (с фигурными скобками и тире, чтобы сделать ее более читаемой), которая может отображаться с использованием подмножества символов ASCII (0–9 и AF), но это не является конкретно кодировкой ASCII.
Я думаю, важно помнить, что стиль отображения GUID в Microsoft - это всего лишь представление GUID, которое на самом деле является 16-байтовым целым значением (как заявил Майкл Трауш).
Вы также можете представить его другими, более компактными способами, преобразовав байты в другой набор символов (например, ASCII).
Теоретически вы можете отображать каждый байт как расширенный символ ASCII (255 символов), что позволит вам сохранить GUID в виде строки длиной 16 символов.
Это было бы не очень удобно для чтения, потому что оно будет включать символы пробела (CR, пробел, табуляция и т.д.) и другие специальные символы, поэтому это будет иметь смысл только в том случае, если вы хотите эффективно сохранить GUID в формате символов, нечитаемых человеком , например, в базе данных, которая изначально не поддерживает GUID или быстрое сопоставление небольших двоичных значений:
http://en.wikipedia.org/wiki/Extended_ASCII
ИМХО, самый читаемый способ отобразить более компактный GUID - это использовать кодировку Base64, которая позволяет сохранить его в строке длиной 22 символа, и это будет выглядеть так:
7v26IM9P2kmVepd7ZxuXyQ==
Но, как утверждает Джефф Этвуд на своем сайте, вы также можете вставить GUID в закодированную строку ASCII85 из 20 символов:
Если бы только у этого ответа было большое и жирное «Нет» вверху, чтобы заманить читателей и действовать как TL; DR. ;)
jpmc26 09
14
Как упомянул Адам из цитаты MSDN, UUID - это 128-битные значения. Это означает, что для хранения значения им требуется 16 байт ОЗУ. Текстовое представление займет 32 байта (два байта на каждый байт) плюс 4 дефиса плюс две скобки, если вы хотите их включить; это составляет 38 байт.
Просто имейте в виду, что если вы предоставляете UUID пользователям своего программного обеспечения, они могут предоставить UUID с скобками или без них. Если вы храните значение где угодно, лучше всего сохранить его как 16-байтовое двоичное представление. Если вы взаимодействуете с другими реализациями UUID, вы можете использовать основной текстовый формат для взаимодействия, поскольку разные реализации по-разному изменяют порядок байтов при сохранении двоичного значения UUID.
Ответы:
Из MSDN :
Из Википедии :
Итак, всего 38 символов в типичной шестнадцатеричной кодировке с фигурными скобками.
-Адам
источник
TL; DR: Нет.
Как заявил Адам Дэвис, стиль Microsoft - это кодировка HEX (с фигурными скобками и тире, чтобы сделать ее более читаемой), которая может отображаться с использованием подмножества символов ASCII (0–9 и AF), но это не является конкретно кодировкой ASCII.
Я думаю, важно помнить, что стиль отображения GUID в Microsoft - это всего лишь представление GUID, которое на самом деле является 16-байтовым целым значением (как заявил Майкл Трауш).
Вы также можете представить его другими, более компактными способами, преобразовав байты в другой набор символов (например, ASCII).
Теоретически вы можете отображать каждый байт как расширенный символ ASCII (255 символов), что позволит вам сохранить GUID в виде строки длиной 16 символов.
Это было бы не очень удобно для чтения, потому что оно будет включать символы пробела (CR, пробел, табуляция и т.д.) и другие специальные символы, поэтому это будет иметь смысл только в том случае, если вы хотите эффективно сохранить GUID в формате символов, нечитаемых человеком , например, в базе данных, которая изначально не поддерживает GUID или быстрое сопоставление небольших двоичных значений: http://en.wikipedia.org/wiki/Extended_ASCII
ИМХО, самый читаемый способ отобразить более компактный GUID - это использовать кодировку Base64, которая позволяет сохранить его в строке длиной 22 символа, и это будет выглядеть так:
Но, как утверждает Джефф Этвуд на своем сайте, вы также можете вставить GUID в закодированную строку ASCII85 из 20 символов:
Для получения дополнительных сведений см. Http://www.codinghorror.com/blog/2005/10/equipping-our-ascii-armor.html.
источник
Как упомянул Адам из цитаты MSDN, UUID - это 128-битные значения. Это означает, что для хранения значения им требуется 16 байт ОЗУ. Текстовое представление займет 32 байта (два байта на каждый байт) плюс 4 дефиса плюс две скобки, если вы хотите их включить; это составляет 38 байт.
Просто имейте в виду, что если вы предоставляете UUID пользователям своего программного обеспечения, они могут предоставить UUID с скобками или без них. Если вы храните значение где угодно, лучше всего сохранить его как 16-байтовое двоичное представление. Если вы взаимодействуете с другими реализациями UUID, вы можете использовать основной текстовый формат для взаимодействия, поскольку разные реализации по-разному изменяют порядок байтов при сохранении двоичного значения UUID.
источник
Длина зависит от кодировки. Вы можете получить стандартную кодировку и длину с помощью этого фрагмента:
Подробнее см. Метод Guid.ToString :
источник