(гекс Б)

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

Какэтот великий ответ показывает,Версия 4 Алгоритм генерации идентификаторов GUID имеет следующий формат:

xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
х случайный4 является константой, это представляет номер версии.у является одним из: 8, 9, А или В

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

Почему третья пуля (17-я цифра) ограничена только этими четырьмя цифрами?

Ответы на вопрос(2)

Решение Вопроса

Прежде всего, о каких битах мы говорим, когда говорим «биты»? Мы уже знаем, что в «случайном» GUID первая шестнадцатеричная цифра третьего раздела всегда равна 4 ... в битах в четвертом разделе также хранится дополнительная информация о версии в GUID; вы заметите, что GUID почти всегда имеет 8, 9, a или b в качестве первой шестнадцатеричной цифры четвертого раздела. Таким образом, всего у нас есть шесть битов, зарезервированных для информации о версии, оставляя 122 бита, которые можно выбрать произвольно.

(изhttps://ericlippert.com/2012/05/07/guid-guide-part-three/)

tl; dr - это больше информации о версии. Если говорить более конкретно, я подозреваю, что вам придется выследить автора спецификации.

Биты, не шестнадцатеричные

шестнадцатеричные цифры смущает вас.

UUID не сделан из гекса. UUID состоит из 128 бит.

Люди возмущаются серией128 бит представлен в виде длинной строки1 а также0 персонажи. Итак, для удобства чтения и записи людьми мы представляем 128-бит в шестнадцатеричном формате.

Всегда имейте в виду, что когда вы видите серию из 36 шестнадцатеричных символов с дефисами, выне глядя на UUID. Вы смотрите на некоторый текст, сгенерированный для представления 128-битного кода, который фактически находится в UUID.

Версия и Вариант

Первое особое значение, которое вы упоминаете,"версия" UUID, записывается с использованием4 бита, Видетьраздел 4.1.3 вашей связанной спецификации.

Второе особое значение, которое вы указываете, это"вариант", Это значение занимает 1-3 бита. Это смраздел 4.1.1 вашей связанной спецификации.

Шестнадцатеричный символ представляет 4 бита (половинаоктет).

Версия число, состоящее из 4 битов, берет на себя целый шестнадцатеричный символ.Версия 4 специально использует биты01 00 который в шестнадцатеричном виде4 как и в десятичных (базовых 10) числах.Вариант, будучи 1-3 бита, делаетне взять весь шестнадцатеричный символ.Вне мира Microsoft GUID, остальная часть отрасли в настоящее время использует два бита:10, для десятичного значения 2, как вариант. Эта пара битов попадает в самые значимые биты октета № 8. Этот октет выглядит следующим образом, где «n» означает 0 или 1:10 nn nn nn, Пара шестнадцатеричных символов представляет каждую половину этого октета. Итак, ваша 17-я шестнадцатеричная цифра, первая половина этого 8-го октета,10 nn, может иметь только четыре возможных значения:10 00 (шестнадцатеричное 8)10 01 (гекс 9)10 10 (гекс А)10 11 (гекс Б)

Ваш ответ на вопрос