Установите два старших бита шестнадцатеричного слова XXXX в xslt - PullRequest
0 голосов
/ 05 февраля 2020

Мне нужно выполнить следующую задачу

  • Установить четыре старших разряда слова (2 байта) на 0100'B, поэтому старший полубайт равен "4". Я делаю это с помощью

    <xsl:value-of select="concat('4',substring($word,2,3))"/>

  • Установите два старших бита слова (2 байта) (в строке) на 10b, так что высокий nibble будет одним из «8», «9», «A» или «B» в XSLT.

Как мне это сделать в xslt 1.0?

1 Ответ

1 голос
/ 05 февраля 2020

Я предполагаю, что это продолжение Генерация UUID в XSLT 1.0 .

Самое простое решение - сначала сгенерировать случайный символ из строки "89AB". Таким образом, вам нечего конвертировать.

Если вы хотите обработать существующий шестнадцатеричный формат git, вы можете использовать функцию translate() для преобразования:

0 to 8
1 to 9
2 to A
3 to B
4 to 8
5 to 9
6 to A
7 to B
C to 8
D to 9
E to A
F to B

в соответствии с следующая таблица:

HEX     BINARY
0       00 00
1       00 01
2       00 10
3       00 11

4       01 00
5       01 01
6       01 10
7       01 11

8       10 00
9       10 01
A       10 10
B       10 11

C       11 00
D       11 01
E       11 10
F       11 11
...