Форум программистов, компьютерный форум CyberForum.ru

Как лучше обрашаться к байтам int ? - C++

Восстановить пароль Регистрация
 
last nope
8 / 8 / 6
Регистрация: 08.12.2012
Сообщений: 20
08.12.2012, 15:57     Как лучше обрашаться к байтам int ? #1
надо реализовать aes, что уже было сделано но встал вопрос: при операциях над словами - умножение, таблица подстоновки, сдвиг как лучше обращаться к байтам, что привело к следующим вопорсам...

те слово 32 бита используем int (или для эстетики unsigned int - ui далее, а unsigned char - uc), и так вопрос как обращаться к байтам слова? есть варианты:

C++
1
2
3
4
5
6
7
8
ui q = 0x00112233;
//первый
uc str[4];
memcpy(str, q, 4);
//второй
uc *str = ((char *) &)q; 
//и здесь лучше обращаться как к элементам масива или через указатели:
str[0] /* или */ (*str) //?
Прошу ответить что лучше и почему, меня интересует тот вариант который быстрее.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2012, 15:57     Как лучше обрашаться к байтам int ?
Посмотрите здесь:

C++ Ошибка - перегруженность pow(int,int) неосуществима. Как исправить?
C++ Как считывать информация с файла по байтам
Как понять int a(int x,int y, int z)? C++
Ошибка при компиляции error: cannot convert ‘int (*)[5]’ to ‘int**’ for argument ‘1’ to ‘void Replase(int**)' C++
Как заполнить один int пустой массив другим int массивом ? C++
C++ Зачем преобразовывать itsVal в int, если эта переменная и так объявлена как тип int
Как передать 0 в функцию типа f (int, int&) C++
C++ Как конвертировать массив int в int?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
08.12.2012, 16:06     Как лучше обрашаться к байтам int ? #2
C++
1
2
3
4
5
6
7
union {
    unsigned int dword;
    unsigned char byte[4];
} q;
 
q.dword = 0x00112233;
q.byte[0] // ==> 0x33
И за порядком байт в слове следите.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
08.12.2012, 16:08     Как лучше обрашаться к байтам int ? #3
Цитата Сообщение от last nope Посмотреть сообщение
ui q = 0x00112233;
мдя Эстетика
C++
1
2
3
4
5
6
unsigned int i=0x12345678;
unsigned char *c=(unsigned char *)&i;
char aa=c[0];
char ab=c[1];
char ac= c[2];
char ad=c[3];
Yandex
Объявления
08.12.2012, 16:08     Как лучше обрашаться к байтам int ?
Ответ Создать тему
Опции темы

Текущее время: 11:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru