Приветствую! Я начинающий программист, поэтому, если вопрос "детский" - не стоит врубать быка. Есть лабораторка, в которой нужно выполнить XOR шифрование массива вещественных чисел (double), с оговоркой, что перед этим нужно выполнить побитовый сдвиг вправо каждого числа. Как обойти то, что с double переменными не применяются битовые операции сдвига? Или мне нужно выполнять сдвиг после приведения в char?
С шифрованием, вроде, разобрался:
std::vector<double> arrDouble = { 3.0, 4.0, 5.0 };
char key = 'r';
int size = sizeof(arrDouble);
for (int i = 0; i < arrDouble.size(); i++)
{
std::cout << "My array: " << arrDouble[i] << " ";
}
std::cout << "\n\nCripted arr: ";
for (int i = 0; i < arrDouble.size(); i++)
{
unsigned char* item = reinterpret_cast<unsigned char*>(&arrDouble[i]);
for (int j = 0; j < sizeof(double); j++)
{
*(item + j) ^= key;
}
}
for (int i = 0; i < arrDouble.size(); i++)
{
std::cout << arrDouble[i] << " ";
}
std::cout << "\n\n";
system("pause");
return 0;
sizeof(arrDouble)
вернет 24, а не 3 как ожидается в цикле for
Битовый сдвиг. Ты прав, надо сначала кастить к unsigned типу, потом делать сдвиг. Только не понятен один момент. После побитового сдвига ты навсегда потеряешь младший бит, как потом будешь декодировать число назад?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть код, который представлен нижеНужно переделать его с использованием функции для проверки четности введенного числа
Проект на C++ собирается Visual Studio 2015UAC Execution Level выставлен в asInvoker, но почему-то 32-битная версия приложения требует права администратора, а 64-битная...
Здравтсвуйте! Как объявить массив глобыльно, что бы можно было в него записывать и обращаться из всех cpp? Пробовал сделать так
В задаче необходимо вывести имена учащихся без троек, двоек и коловОднако моя программа выводит имена всех введенных учащихся