hi,everyone:
我做优化时候,需要将一个有符号的32位 int 类型的数,做一个饱和操作,变成一个
无符号的8位的数。具体代码如下:
int var;
if(var>255) var = 255; //大于255 就置为255
else if(var < 0) var = 0; //小于0 就置为0
else var = var; // 0- 255 之间就保持不变
请问,有没有专门指令操作的,或者有比较快的方法?
Best Regards!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Louis 说:我的一个思路,一次计算4个值
如: int A,B,C,D,AB,ABCD
AB = _spack2(A,B);
CD = _spack2(C,D);
ABCD = _spacku4(AB, CD);
这样ABCD的四个字节就是分别你需要的四个值,用upack命令解包即可。
恩,差不多,但是,我感觉前边不应该用spack2把,我前边用了pack2.
如果用了spack2的话,相当于进行了两次饱和操作。int先饱和为16位的,
然后,再将16位的饱和为8位的。
而我原来的意思是,直接从int饱和为8位的操作。