Introduction
This program takes a floating point value as input and converts it into an integer by trimming the decimal point. Please e-mail your suggestion to Jayadev at jayadevmv@rediffmail.com.
Background
The code uses the tag _asm
in VC++. Using the assembly code, the floating point value is converted into an integer value.
Using the Code
The code is very simple and it can be plugged into any other code easily.
The function ftoi
looks like this:
int ftoi(float flt)
{
int i;
_asm
{
mov eax,flt; rcl eax,1; mov ebx,eax; mov edx,4278190080; and eax,edx; shr eax,24;
sub eax,7fh; mov edx,eax; mov eax,ebx; rcl eax,8; mov ebx,eax; mov ecx, 1fh; sub ecx,edx;
mov edx,00000000h;
cmp ecx,0;
je loop2;
shr eax,1;
or eax,80000000h;
loop1:
shr eax,1; sub ecx,1;
add edx,1;
cmp ecx,0;
ja loop1;
loop2:
mov i, eax;
sign:
mov eax,flt;
and eax,80000000h;
cmp eax,80000000h;
je putsign;
}
return i;
putsign:
return -i;
}
History
- 15th June, 2005: Initial version