如何只获取float的整数部分?所以,我有一个浮点数组:x [4] = {5.0,13.0,25.0,41.0}; 我把它放在xmm0然后我正在制作它的sqrt.我还需要一个命令来帮助只占用这个sqrt的int部分.例如,5的sqrt将是2.236068,我在答案
代码中只需要2.0 :
__asm { movups xmm0, x sqrtps xmm0, xmm0 //here need some command movups x, xmm0 }
harold.. 5
使用roundps
是最简单的.舍入模式表位于其他位置,但您需要舍入模式3(朝向零).
转换为整数并返回仅在输入保证在某个范围内时才起作用(由于平方根,大约为0到4.6e18).你可以用cvttps2dq
和做cvtdq2ps
.这只需要SSE2,roundps
需要SSE4.1.cvtps2dq
仅当舍入模式设置为截断时才可以使用,通常不是,因此您必须更改+恢复它.
使用roundps
是最简单的.舍入模式表位于其他位置,但您需要舍入模式3(朝向零).
转换为整数并返回仅在输入保证在某个范围内时才起作用(由于平方根,大约为0到4.6e18).你可以用cvttps2dq
和做cvtdq2ps
.这只需要SSE2,roundps
需要SSE4.1.cvtps2dq
仅当舍入模式设置为截断时才可以使用,通常不是,因此您必须更改+恢复它.