Objective c 为什么可以';我没有一个短的浮动吗?
我在Xcode(Objective-C)中Objective c 为什么可以';我没有一个短的浮动吗?,objective-c,Objective C,我在Xcode(Objective-C)中 为什么我不能有一个短浮点数?我得到一个错误,“short float”无效我从未在C语言中见过short float short int存在,但short float没有Richard指出的意义。您可以使用如下位域实现短float: typedef struct shortFloat { char sign : 1; char exponent : 5; short significand : 10; } shortFloat;
为什么我不能有一个
短浮点数
?我得到一个错误,“short float”无效
我从未在C语言中见过short float
short int
存在,但short float
没有Richard指出的意义。您可以使用如下位域实现短float:
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 targets(包括iPhone)上,您可以使用半精度浮点值,请阅读此处的GCC文档:
short
和long
用于整数,浮点数的等效值为half
和double
<但是,objective-C中没有“代码>一半”(处理器没有任何处理一半长度浮点的指令),但可以在一些GPU语言中找到,如GLSL。,因为它没有意义。浮点数(通常)实现为IEEE 754,这对“短”值没有意义。@RichardJ.RossIII IEEE 754有一个“半精度”模式,实际上只有16位。但这不会利用汇编中的浮点指令,不是吗?我猜它可以在计算过程中被编组为float,让机器决定如何计算它,然后将其解编回16位。