4 / 4 / 0
Регистрация: 13.02.2013
Сообщений: 37
|
|
1 | |
"Заливка" памяти нужным значением14.12.2013, 23:42. Показов 616. Ответов 6
Метки нет (Все метки)
Есть некий блок памяти [ ][ ][ ][ ] [ ][ ][ ][ ] [ ][ ][ ][ ]. И есть uint32_t a, равный например 0xAABBCCDD. Каким наиболее быстрым способом можно сделать так:
[AA][BB][CC][DD] [AA][BB][CC][DD] [AA][BB][CC][DD]?
0
|
14.12.2013, 23:42 | |
Ответы с готовыми решениями:
6
Как прописать пол байта нужным значением? Длительное ожидание элемента с нужным значением Как сравнить DateTime с нужным значением? Заменить указанную подстроку нужным числовым значением |
25 / 25 / 16
Регистрация: 12.04.2013
Сообщений: 84
|
||||||
15.12.2013, 01:22 | 2 | |||||
Могу предложить такой вариант:
Только, если, a = 0xaabbccdd, в памяти это будет выглядить как ... dd cc bb aa dd cc bb aa ...
0
|
4 / 4 / 0
Регистрация: 13.02.2013
Сообщений: 37
|
|
15.12.2013, 11:10 [ТС] | 3 |
Если я напишу функцию, которая будет последовательно вызывать в первый раз memcpy просто переменной, затем memcpy того куска, что уже есть (4 байта) затем memcpy того, что уже есть (2 * 4) и т.д. А если размер не кратен двойке - то в таком "цикле" идти только до кратного числа, остальное заполнять как у вас.
Будет ли это быстрее?
0
|
25 / 25 / 16
Регистрация: 12.04.2013
Сообщений: 84
|
||||||
15.12.2013, 14:37 | 4 | |||||
Честно говоря не знаю, как будет быстрее.
Теоретически ваш вариант быстрее должен быть (т.к. сначала копируется 4 байта, потом 8 и т.д.) Фактически как будет - не известно ) Если интересно, какой алгоритм будет быстрее, то напишите обе варианта функции и перед вызовом каждой функции сохраните таймштамп в какую-либо переменную
0
|
4 / 4 / 0
Регистрация: 13.02.2013
Сообщений: 37
|
|
15.12.2013, 14:43 [ТС] | 5 |
0
|
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
|
||||||
15.12.2013, 16:03 | 6 | |||||
Будет. Более того, нормальное копирование вида
Не по теме: На всякий случай дополнительно обращаю внимание на порядок байт у инициализатора.
0
|
4 / 4 / 0
Регистрация: 13.02.2013
Сообщений: 37
|
||||||
15.12.2013, 17:09 [ТС] | 7 | |||||
Сделал на ассемблере, получилось в 10 раз быстрее цикла на memcpy:
Код
Starting usual Time for usual realisation : 19.81 Starting modified Time for modified realisation : 1.88
0
|
15.12.2013, 17:09 | |
15.12.2013, 17:09 | |
Помогаю со студенческими работами здесь
7
Заменить указанную подстроку нужным числовым значением. Как найти в массиве объектов элементы с нужным значением поля? Как заменить столбец матрицы нужным значением и обновленную матрицу и вывести ее? Заменить во введенном строковом выражении указанную подстроку нужным числовым значением Заменить во введенном строковом выражении указанную подстроку нужным числовым значением Найти строку с нужным значением и заменить в ней столбцы по списку соответствия Составить программу заменяющую во введенном строковом выражении подстроку нужным числовым значением Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |