Доброго времени суток! Мир Вам! С уважением
Clevelus.
Если мой ответ понравился — оцените, ни на что не влияет, но будет приятно.
Здравствуйте, orangel, Вы писали:
O>Доброго времени суток!
O>В свободное время изучаю C++. В качестве IDE выступает Visual C++ 2010 Express. Столкнулся с одной трудностью.
O>Нужно считать из бинарного файла два байта. Потом объединенить их HEX значения и результат перевести в десятичное.
O>Например: два байта в HEX 1F и 2B. Объединение: 1F2B. Десятичное: 7979.
O>Буду признателен за любую помощь.
Нечто вроде этого?
uint8 x1 — 0x1F;
uint8 x2 = 0x2B;
uint16 result = (x1 << 8) | x2;
... << RSDN@Home 1.2.0 alpha 5 rev. 1495>>
Здравствуйте, orangel, Вы писали:
O>Доброго времени суток!
O>В свободное время изучаю C++. В качестве IDE выступает Visual C++ 2010 Express. Столкнулся с одной трудностью.
O>Нужно считать из бинарного файла два байта. Потом объединенить их HEX значения и результат перевести в десятичное.
O>Например: два байта в HEX 1F и 2B. Объединение: 1F2B. Десятичное: 7979.
O>Буду признателен за любую помощь.
int16_t var;
if (read(handle, &var, sizeof(var)) == sizeof(var)) {
// судя по примеру, порядок байт в файле - big-endian
var = ntohs(var);
printf("шеснадцатеричное %x\nдесятичное %d", (int)var, (int)var);
}
else
perror("байты не прочитались");