uint8_t плавать в цель C - PullRequest
0 голосов
/ 18 декабря 2009

Как преобразовать 4 элемента массива uint8_t в число с плавающей точкой в ​​Objective c?

Я попробовал оператор сдвига, и он, похоже, не работает: (

Ответы [ 2 ]

4 голосов
/ 18 декабря 2009

Вы думаете о чем-то столь неопределенном, как это?:

union U8f {
    uint8_t byte[4];
    float f;
};

...
union U8f u8f;
u8f.byte[0] = ...
u8f.byte[1] = ...
...

float f = u8f.f;

Помните, порядок байтов имеет значение. Я отойду и буду ждать заслуженной критики. ; -)

0 голосов
/ 18 декабря 2009

Точно так же, как вы делаете это в простом старом С, разыграйте его:

float f = (float) intArray[x];

Полный пример:

#import <Foundation/Foundation.h>

int
main(int argc, char** argv)
{
    NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];

    uint8_t ints[4] = { 1, 2, 3, 4 };
    float floats[4];
    floats[0] = (float) ints[0];
    floats[1] = (float) ints[1];
    floats[2] = (float) ints[2];
    floats[3] = (float) ints[3];

    NSLog(@"floats[0]: %f", floats[0]);
    NSLog(@"floats[1]: %f", floats[1]);
    NSLog(@"floats[2]: %f", floats[2]);
    NSLog(@"floats[3]: %f", floats[3]);

    [pool release];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...