1hex.h(3)                   Library Functions Manual                   hex.h(3)
2
3
4

NAME

6       hex.h - Шестнадцатеричные строки
7
8

SYNOPSIS

10       #include 'bee2/defs.h'
11       #include 'bee2/core/safe.h'
12
13
14   Функции
15       bool_t hexIsValid (const char *hex)
16           Корректная шестнадцатеричная строка?
17       void hexUpper (char *hex)
18           К верхнему регистру
19       void hexLower (char *hex)
20           К нижнему регистру
21       bool_t hexEq (const void *buf, const char *hex)
22           Совпадает с шестнадцатеричной строкой?
23       bool_t hexEqRev (const void *buf, const char *hex)
24           Совпадает с обратной шестнадцатеричной строкой?
25       void hexFrom (char *dest, const void *src, size_t count)
26           Кодирование буфера памяти
27       void hexFromRev (char *dest, const void *src, size_t count)
28           Обратное кодирование буфера памяти
29       void hexTo (void *dest, const char *src)
30           Декодирование буфера памяти
31       void hexToRev (void *dest, const char *src)
32           Обратное декодирование буфера памяти
33

Подробное описание

35       Реализовано управление шестнадцатеричными строками, которые
36       представляют буферы памяти. Формально шестнадцатеричный формат задан в
37       RFC 4648 как Base16.
38
39       Шестнадцатеричная строка -- это слово в алфавите
40       {'0',..,'9','A',...,'F','a',...,'f'}. Символы 'A' и 'a', 'B' и 'b',...
41       считаются эквивалентными. В соответствии с RFC 4648 преимущество
42       отдается прописным символам.
43
44       Предусловие
45           Во все функции, кроме возможно hexIsValid(), передаются корректные
46           шестнадцатеричные строки и буферы памяти.
47

Функции

49   bool_t hexEq (const void * buf, const char * hex)
50       Буфер [strLen(hex) / 2]buf сравнивается с буфером, заданым
51       шестнадцатеричной строкой hex. Первая пара символов hex преобразуется в
52       октет, который сравнивается с первым октетом buf, вторая пара
53       сравнивается со вторым октетом buf и т. д.
54
55       Предусловие
56           hexIsValid(hex) == TRUE.
57
58       Возвращает
59           Признак совпадения.
60
61       Прим.
62           Сравнение задается следующим псевдокодом:
63
64           octet tmp[strLen(hex) / 2];
65           hexTo(tmp, hex);
66           return memEq(buf, tmp, strLen(hex) / 2);
67
68
69       Регулярность
70           Имеется ускоренная нерегулярная редакция.
71
72       Аргументы
73           buf буфер
74           hex шестнадцатеричная строка
75
76   bool_t hexEqRev (const void * buf, const char * hex)
77       Буфер [strLen(hex) / 2]buf сравнивается с буфером, заданым
78       шестнадцатеричной строкой hex. Первая пара символов hex преобразуется в
79       октет, который сравнивается с последним октетом buf, вторая пара
80       сравнивается с предпоследним октетом buf и т.д.
81
82       Предусловие
83           hexIsValid(hex) == TRUE.
84
85       Возвращает
86           Признак совпадения.
87
88       Прим.
89           Сравнение задается следующим псевдокодом:
90
91           octet tmp[strLen(hex) / 2];
92           hexTo(tmp, hex);
93           memRev(tmp, strLen(hex) / 2);
94           return memEq(buf, tmp, strLen(hex) / 2);
95
96
97       Регулярность
98           Имеется ускоренная нерегулярная редакция.
99
100       Аргументы
101           buf буфер
102           hex шестнадцатеричная строка
103
104   void hexFrom (char * dest, const void * src, size_t count)
105       Буфер [count]src кодируется шестнадцатеричной строкой {2 * count +
106       1}dest. Первому октету src соответствует первая пара символов dest,
107       второму октету -- вторая пара и т.д.
108
109       Предусловие
110           Буферы dest и src не пересекаются.
111
112       Аргументы
113           dest строка-приемник
114           src память-источник
115           count число октетов
116
117   void hexFromRev (char * dest, const void * src, size_t count)
118       Буфер [count]src кодируется шестнадцатеричной строкой [2 * count +
119       1]dest. Первому октету src соответствует последняя пара символов dest,
120       второму октету -- предпоследняя пара и т.д.
121
122       Предусловие
123           Буферы dest и src не пересекаются.
124
125       Аргументы
126           dest строка-приемник
127           src память-источник
128           count число октетов
129
130   bool_t hexIsValid (const char * hex)
131       Проверяется корректность шестнадцатеричной строки hex. Строка считается
132       корректной, если она состоит из четного числа символов алфавита
133       {'0',..,'9','A',...,'F','a',...,'f'}.
134
135       Возвращает
136           Признак корректности.
137
138       Регулярность
139           Функция нерегулярна.
140
141       Аргументы
142           hex шестнадцатеричная строка
143
144   void hexLower (char * hex)
145       Прописные символы строки hex преобразуются в строчные.
146
147       Аргументы
148           hex шестнадцатеричная строка
149
150   void hexTo (void * dest, const char * src)
151       Шестнадцатеричная строка src преобразуется в строку октетов
152       [strLen(src) / 2]dest. По первой паре символов src определяется первый
153       октет dest, по второй паре -- второй октет и т.д.
154
155       Предусловие
156           hexIsValid(hex) == TRUE.
157
158       Аргументы
159           dest память-приемник
160           src строка-источник
161
162   void hexToRev (void * dest, const char * src)
163       Шестнадцатеричная строка src преобразуется в строку октетов
164       [strLen(src) / 2]dest. По последней паре символов src определяется
165       первый октет dest, по предпоследней паре -- второй октет и т. д.
166
167       Предусловие
168           hexIsValid(hex) == TRUE.
169
170       Аргументы
171           dest память-приемник
172           src строка-источник
173
174   void hexUpper (char * hex)
175       Строчные символы строки hex преобразуются в прописные.
176
177       Аргументы
178           hex шестнадцатеричная строка
179

Автор

181       Автоматически создано Doxygen для Библиотека Bee2 из исходного текста.
182
183
184
185Библиотека Bee2                 Пт 23 Июн 2023                        hex.h(3)
Impressum