среда, 5 августа 2009 г.

Из двух 16-разрядных целых вещественное, 32 разряда.

Раз уж здесь есть советы по типу "sizeof()", то добавлю этот. Наверно интересен для программистов, знающих о C только по наслышке. :)

Задача проста: имеются два 16-ти разрядных целых числа (другими словами, 2 байта информации, которая вроде как число), нужно склеить из них 32-х разрядное, вещественное. Условия задачи, в общем, легко переформулируются, важен принцип решения. :)

Решение просто, как все в C:

int w1 = 62915, w2 = 16456;
ui32 vl = ((w2&0xffff)<<16) | w1&0xffff;
printf("TEST 00: %f\n",*(float*)&vl);

PS: не забывайте про BIG ENDIAN и LITTLE_ENDIAN. ;)

Комментариев нет:

Отправить комментарий