为什么我不能短暂浮动?

时间:2012-05-07 17:39:11

标签: objective-c

我在Xcode(Objective-C)。

为什么我不能拥有short float?我收到错误'short float' is invalid

3 个答案:

答案 0 :(得分:3)

你可以使用像这样的位域实现一个短浮点数:

typedef struct shortFloat {
    char sign : 1;
    char exponent : 5;
    short significand : 10;
} shortFloat;

shortFloat shortFloat_add(shortFloat s1, shortFloat s2);
shortFloat shortFloat_sub(shortFloat s1, shortFloat s2);
shortFloat shortFloat_mul(shortFloat s1, shortFloat s2);
shortFloat shortFloat_div(shortFloat s1, shortFloat s2);

但是你必须编写自己的浮点数学。

此外,在ARM目标(包括iPhone)上,您可以使用半精度浮点值,请阅读此处的GCC文档:http://gcc.gnu.org/onlinedocs/gcc/Half_002dPrecision.html

答案 1 :(得分:3)

shortlong用于整数,浮点数的等效值为halfdouble。然而,half在Objective-C中不可用(处理器没有处理半长浮点数的任何指令),但可以在某些GPU语言中找到,例如GLSL。

答案 2 :(得分:0)

我从未见过使用C基础语言的短暂浮动。

short int存在,但short float没有像理查德指出的那样有意义。