Почему там тире в GUID.NET?

Блокировка обычно выбирается для максимизации «занятости». Поиск на CUDA Occupancy для получения дополнительной информации. В частности, см. Таблицу электронных калькуляций CUDA.

50
задан Mirzhan Irkegulov 17 January 2013 в 20:22
поделиться

12 ответов

Технически, нет никаких "тире" в GUID. GUID является 128-разрядным значением, которое обычно хранится следующим образом (использующий C# здесь для представления структуры):

public struct Guid
{
  public ulong Data1;
  public ushort Data2;
  public ushort Data3;
  public fixed byte Data4[8];
}

тире находятся в строковое представление из GUID.

тире являются дополнительными и не требуются в строковом представлении GUID.

Однако существуют исторические причины как, туда, где размещение тире , связано с тем, как GUID были сгенерированы, но что исторический семантический больше не применяется.

58
ответ дан Community 7 November 2019 в 10:34
поделиться

Это - просто удобство.

http://en.wikipedia.org/wiki/GUID

9
ответ дан Otávio Décio 7 November 2019 в 10:34
поделиться

Это - пример разделения на блоки, точно так же, как номера телефона, номера кредитных карт, и т.д.

Вот являются хорошей статьей Wikipedia об этом.

6
ответ дан Andrew Hare 7 November 2019 в 10:34
поделиться

Примерно каждый визуальный represenation гуида, который я видел, использует штриховой формат. Это намного легче на глазах.

4
ответ дан NotMe 7 November 2019 в 10:34
поделиться

Guid класс.NET распознает набор различных форматов: тире как разделители, никакие разделители, скобки как разделители, круглая скобка как разделители, никакие разделители, и т.д.

3
ответ дан casperOne 7 November 2019 в 10:34
поделиться

В начальной версии спецификации UUID (универсальный уникальный идентификатор) каждый из элементов данных имел семантическое значение:

{ time_low } - { time_mid } - { time_high_and_version } - { clock_seq_and_reserved clock_seq_low } - { node_id }

Эти элементы были разработаны для предоставления временных (биты времени) и пространственных (биты хоста) ) уникальность.

История версий

Поскольку математическая вероятность коллизий в пространстве ключей из 2 ^ 1024 случайных битов оказалась астрономически маловероятной, в последующих версиях спецификации UUID были постепенно сокращены время и данные хоста по соображениям безопасности и конфиденциальности. .

Единственными элементами, которые сохраняют какое-либо значение, являются биты версии и зарезервированные биты.

UUID версии 3 являются производными от MD5-хэша URI или другого отличительного имени.

Версия 4 генерируется со случайными данными и в настоящее время является наиболее распространенной реализацией, которую вы можете встретить в реальных условиях.

Версия 5 получена из хэша SHA1.

Форматы хранения

Поскольку дефисы указаны для форматирования ASCII UUID в RFC, даже если отдельные разделы больше не сохраняют свое первоначальное значение, они по-прежнему необходимы, если вам нужна совместимость.

UUID также иногда сохраняются в виде строки в кодировке base64 или ascii85, чтобы сэкономить место для передачи через транспорты, которые не являются двоично-безопасными, и соблюдение RFC не требуется.

Ascii:   3F2504E0-4F89-11D3-9A0C-0305E82C3301
Base64:  7QDBkvCA1+B9K/U0vrQx1A
Ascii85: 5:$Hj:Pf\4RLB9%kU\Lj

Ссылки:
RFC4122 (см. Стр. 3 специально для ABNF-описания формата UUID)
Википедия GUID UUID

35
ответ дан 7 November 2019 в 10:34
поделиться

Дефисы используются для разделения каждого числа

E93416C5-9377-4A1D-8390-7E57D439C9E7

Hex digits  Description
8           Data1
4           Data2
4           Data3
4           Initial two bytes from Data4
12          Remaining six bytes from Data4
2
ответ дан 7 November 2019 в 10:34
поделиться

Если вы хотите где-то сохранить guid, сохраните его как массив из 16 байт, а не как его текстовое представление. Вы сэкономите много места, и вопроса о дефисах не возникнет.

0
ответ дан 7 November 2019 в 10:34
поделиться

На самом деле GUID - это просто число. Дефисы показывают, как разбиваются различные компоненты, но на самом деле они не являются частью числа. Это похоже на IP-адрес - вы можете сохранить 32-битное число или строку с точками, они эквивалентны.

0
ответ дан 7 November 2019 в 10:34
поделиться

Изыскания абсолютно не влияют на уникальность или случайность значения. Они являются просто пережитком определения GUID и визуально разделяют четыре отдельные части данных, составляющих GUID.

0
ответ дан 7 November 2019 в 10:34
поделиться

Дефисы обозначают байтовую структуру Guid.

typedef struct _GUID 
{  
   DWORD Data1;  
   WORD Data2;  
   WORD Data3;  
   BYTE Data4[8];
} GUID;

Для:

(XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX)

Возможно, вы можете удалить их перед сохранением. По крайней мере, в .NET конструктор типа Guid будет инициализировать переменную Guid из ее строкового представления независимо от того, остались ли дефисы или удалены.

13
ответ дан 7 November 2019 в 10:34
поделиться

Это просто для удобства. GUID состоит из 16 байтов, что составляет 32 символа в шестнадцатеричном текстовом представлении. Без дефисов GUID труднее воспринимать людьми и труднее распознавать как GUID, а не как случайные 16-байтовые числа.

1
ответ дан 7 November 2019 в 10:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: