Хранение миллионов 4-битных значений (полубайтов) — макросы против классовC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Хранение миллионов 4-битных значений (полубайтов) — макросы против классов

Сообщение Anonymous »

Мне нужно было динамически выделить около миллиона 4-битных типов данных.
Я попробовал определить тип 1-байтового uint8_t (8 бит) как «слово» и получить доступ к его первым 4 битам (слово младшего разряда) и последним 4 битам (слово старшего порядка) для двух 4-битных типов данных. Для доступа и индексирования я попытался определить для них макросы, однако у меня вопрос: будет ли это быстрее во время выполнения, если я реализую это как класс?
Версия макроса:

Код: Выделить всё

#include 
#include 
using std::cout;
using std::cin;
using std::endl;

typedef uint8_t word;
#define wordLO(wrd) (0b11110000 & wrd) >> 4
#define wordHI(wrd) 0b00001111 & wrd

#define setwordLO(wrd, num) wrd = (num = 16) {
cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79863412/storing-millions-of-4-bit-values-nibbles-macros-vs-classes[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»