我在Xcode(Objective-C)。
为什么我不能拥有short float
?我收到错误'short float' is invalid
。
答案 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)
short
和long
用于整数,浮点数的等效值为half
和double
。然而,half
在Objective-C中不可用(处理器没有处理半长浮点数的任何指令),但可以在某些GPU语言中找到,例如GLSL。
答案 2 :(得分:0)
我从未见过使用C基础语言的短暂浮动。
short int
存在,但short float
没有像理查德指出的那样有意义。