1hex.h(3) Library Functions Manual hex.h(3)
2
3
4
6 hex.h - Шестнадцатеричные строки
7
8
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 Ср 19 Июл 2023 00:00:00 hex.h(3)