我在 Xcode (Objective-C) 中。
为什么我不能有一个short float
?我得到错误'short float' is invalid
。
您可以使用这样的位域实现一个短浮点数:
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
short
和long
是整数,等价的浮点数是half
和double
。half
然而,在 Objective-C 中不可用(处理器没有任何处理半长浮点数的指令),但可以在一些 GPU 语言中找到,如 GLSL。
我从未见过 C 基础语言中的短浮点数。
short int
存在,但short float
像理查德指出的那样没有意义。