sqrt32.cpp
来自「这是我本人编写的一个32位定点小数运算的函数库。对于没有浮点运算器的场合」· C++ 代码 · 共 67 行
CPP
67 行
//
//
//
#include <stdlib.h>
////////////////////////////////////////////////////////////////////////////////////
long FixSqrt32(long x,long y)
{
long r;
long x1=__max(x,y);
__asm {
mov eax,x
mov ebx,eax
cmp ebx,0
jnl l1
neg ebx
}
l1:
__asm {
imul eax
mov esi,eax
mov edi,edx
mov eax,y
mov ecx,eax
cmp ecx,0
jnl l2
neg ecx
}
l2:
__asm {
imul eax
cmp ebx,ecx
jnc l3
mov ebx,ecx
}
l3:
__asm {
add esi,eax
adc edi,edx
mov eax,esi
mov edx,edi
div ebx
add ebx,eax
shr ebx,1
mov eax,esi
mov edx,edi
div ebx
add ebx,eax
shr ebx,1
mov eax,esi
mov edx,edi
div ebx
add ebx,eax
shr ebx,1
mov r,ebx
}
return r;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?