2

我在 Xcode (Objective-C) 中。

为什么我不能有一个short float?我得到错误'short float' is invalid

4

3 回答 3

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

于 2012-05-07T17:45:33.253 回答
3

shortlong是整数,等价的浮点数是halfdoublehalf然而,在 Objective-C 中不可用(处理器没有任何处理半长浮点数的指令),但可以在一些 GPU 语言中找到,如 GLSL。

于 2012-05-07T17:46:46.993 回答
0

我从未见过 C 基础语言中的短浮点数。

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

于 2012-05-07T17:43:18.710 回答