Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何(快速)将浮点转换为字节?_Ios_Objective C - Fatal编程技术网

Ios 如何(快速)将浮点转换为字节?

Ios 如何(快速)将浮点转换为字节?,ios,objective-c,Ios,Objective C,我有一个方法可以处理位图中的所有像素(表示为字节数组)。对于每个像素,我使用float对每个R、G和B值进行相当复杂的计算,以存储计算出的值,直到最后将其转换回字节(仅使用强制转换,我确信float中的值将始终为255.0或更小) 在尝试优化此方法时,我惊讶地发现,大约80%的总体处理时间是从R、G和B的三个float值到它们的字节对应值的转换 有没有什么超快速的方法可以做到这一点(例如: 好吧,这有点奇怪。如果我只是做这个改变: float Rtotal = 123.7; float Gtot

我有一个方法可以处理位图中的所有像素(表示为
字节
数组)。对于每个像素,我使用
float
对每个R、G和B值进行相当复杂的计算,以存储计算出的值,直到最后将其转换回
字节(仅使用强制转换,我确信
float
中的值将始终为255.0或更小)

在尝试优化此方法时,我惊讶地发现,大约80%的总体处理时间是从R、G和B的三个
float
值到它们的
字节
对应值的转换

有没有什么超快速的方法可以做到这一点(例如:


好吧,这有点奇怪。如果我只是做这个改变:

float Rtotal = 123.7;
float Gtotal = 7.3;
float Btotal = 221.3;

Byte Rsource = (int)Rtotal;
Byte Gsource = (int)Gtotal;
Byte Bsource = (int)Btotal;
转换为
(字节)
所导致的额外时间消失。我的猜测是,编译器正在向
(Byte)
强制转换添加某种边界检查,以确保它在一个字节的有效范围内,而如果强制转换为
int
,则会忽略这一点

float Rtotal = 123.7;
float Gtotal = 7.3;
float Btotal = 221.3;

Byte Rsource = (int)Rtotal;
Byte Gsource = (int)Gtotal;
Byte Bsource = (int)Btotal;