Я пытаюсь сконвертировать массив из восьми «байт» в unsigned _int64
, но получаю
C8BA94B1
вместо нужного
B194BAC8
Я не знаю, как это исправить.
Мой код:
std::array<unsigned __uint64, 8> S;
S = { 177,148,186,200,10,8,245,59 };
unsigned __int64 byteS = (S.at(0) |
(S.at(1) << 8 |
(S.at(2) << 16 |
(S.at(3) << 24 |
(S.at(4) << 32 |
(S.at(5) << 40 |
(S.at(6) << 48 |
(S.at(7) << 56;
printf("%X", byteS[0]);
Я пыталась изменить направление 0..7, 7..0, но это не помогло. Что я делаю неправильно?
Конечно, надо бы комментарием, но ни места, ни форматирования...
Распишем подробнее:
int main()
{
array<unsigned __int64, 8> S;
S = { 177,148,186,200,10,8,245,59 };
unsigned __int64 byteS = (S.at(0)) |
(S.at(1) << 8) |
(S.at(2) << 16) |
(S.at(3) << 24) |
(S.at(4) << 32) |
(S.at(5) << 40) |
(S.at(6) << 48) |
(S.at(7) << 56);
printf("S[0] = %016llX, S[0] << 0 = %016llX\n",S[0],S[0] );
printf("S[1] = %016llX, S[1] << 8 = %016llX\n",S[1],S[1] << 8);
printf("S[2] = %016llX, S[2] << 16 = %016llX\n",S[2],S[2] << 16);
printf("S[3] = %016llX, S[3] << 24 = %016llX\n",S[3],S[3] << 24);
printf("S[4] = %016llX, S[4] << 32 = %016llX\n",S[4],S[4] << 32);
printf("S[5] = %016llX, S[5] << 40 = %016llX\n",S[5],S[5] << 40);
printf("S[6] = %016llX, S[6] << 48 = %016llX\n",S[6],S[6] << 48);
printf("S[7] = %016llX, S[7] << 56 = %016llX\n",S[7],S[7] << 56);
printf("%llX", byteS);
}
Вывод:
S[0] = 00000000000000B1, S[0] << 0 = 00000000000000B1
S[1] = 0000000000000094, S[1] << 8 = 0000000000009400
S[2] = 00000000000000BA, S[2] << 16 = 0000000000BA0000
S[3] = 00000000000000C8, S[3] << 24 = 00000000C8000000
S[4] = 000000000000000A, S[4] << 32 = 0000000A00000000
S[5] = 0000000000000008, S[5] << 40 = 0000080000000000
S[6] = 00000000000000F5, S[6] << 48 = 00F5000000000000
S[7] = 000000000000003B, S[7] << 56 = 3B00000000000000
3BF5080AC8BA94B1
С чем именно вы несогласны? что, по-вашему, работает не так?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте! У меня возникла следующая проблемаЕсть вполне рабочее веб-приложение на Java (Spring MVC), где, помимо прочего, делаются запросы в БД, а результаты...
Делаю скачку обновлений с github из своего репозитория(есть доступ) при помощи nodejs