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

32х битная чексумма - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Наследование http://www.cyberforum.ru/cpp-beginners/thread688507.html
Объясните пожалуйста на примерах и на "русском" языке что такое производный класс и наследование. Не могу понять, должны ли копироваться в производный класс функции члены от родителя, т.е. например...
C++ чаровские строки Строка состоит из слов, разделенных ровно одним пробелом, пробелов перед первым и после последнего слова нет. Получить новую строку, в начале которой на нечетном месте должно стоять слово только из... http://www.cyberforum.ru/cpp-beginners/thread688485.html
Ввести фамилию, имя и отчество как одно данное типа строка. Заменить на инициалы C++
Ввести фамилию, имя и отчество как одно данное типа строка. Определить длину строки и количество букв «а» в нем. Выполнить задачи своего двумя способами: - Рассматривая строку как массив символов....
Калькулятор C++
Как создать калькулятор? Самый обычный, какой есть в стандартных программах, не инженерный. С дизайном разобралась, а с кодом вообще не знаю, что делать(
C++ Написание структуры http://www.cyberforum.ru/cpp-beginners/thread688454.html
struct tochka { double x; double y; tochka() { x=0; y=0; } };
C++ Матрица и два массива Дана матрица размером 5 на 6 и два одномерных массива длинной в 6 символов, Задание вставить одномерные массивы в соответствующие строчки и столбцы матрицы (номера строки и столбца вводятся с... подробнее

Показать сообщение отдельно
Kastaneda
Форумчанин
Эксперт С++
4655 / 2863 / 228
Регистрация: 12.12.2009
Сообщений: 7,275
Записей в блоге: 2
Завершенные тесты: 1
04.11.2012, 21:27
Потому что таков интеловский порядок байтов. На самом деле все логично - по младшему адресу лежит младший байт, по старшему старший.
C++
1
2
3
unsigned int n; //допустим unsigned int имеет размер 4 байта. 
unsigned char arr[4] = {0x1, 0x2, 0x3, 0x4};
n = *(reinterpret_cast<int*>(arr));
непосвященный человек может предположить, что n будет равно 0x1234, но это не так. n будет равно 0x4321, т.к. младший байт n считается с младшего адреса и т.д.

Поэтому и нужно перевернуть перед преведением.

Добавлено через 1 минуту
советую ознакомиться

Добавлено через 3 минуты
хотя перед разворотом массива советую все же проверить какой порядок байтов используется в машине. 100% это будет little-endian, но просто тем самым ты покажешь "свой" уровень профессионализма

Добавлено через 4 минуты
всего этого геммороя можно было бы избежать, если использовать С++11, там есть тип std::uint32_t, размер которого гарантировано равен 32 бита, но думаю это не то, что они хотели бы увидеть
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru