Advertisement
IcarusLives

Floats

May 30th, 2018
425
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Batch 1.65 KB | None | 0 0
  1. @echo off & setlocal enableDelayedExpansion
  2.  
  3. call :macros
  4.  
  5. echo.
  6. echo    floatDIV MACRO
  7. echo.----------------------------------------------------------
  8. for /l %%a in (1,1,20) do (
  9.     set /a "rnd1=!random! %% 49 + 1", "rnd2=!random! %% 49 + 1"
  10.    
  11.     %floatDIV% !rnd1! !rnd2!
  12. )
  13. echo.
  14. echo.
  15. echo    floatDIV :FUNCTION
  16. echo.----------------------------------------------------------
  17. for /l %%a in (1,1,20) do (
  18.     set /a "rnd1=!random! %% 49 + 1", "rnd2=!random! %% 49 + 1"
  19.    
  20.     call :floatDIV !rnd1! !rnd2!
  21. )
  22. pause & exit
  23.  
  24. :macros
  25. set ^"LF=^
  26.  
  27. ^" Above empty line is required - do not remove
  28. set ^"\n=^^^%LF%%LF%^%LF%%LF%^^"
  29. for /F %%a in ('echo prompt $E^| cmd') do set "ESC=%%a"
  30.  
  31. set floatDIV=for %%# in (1 2) do if %%#==2 ( for /f "tokens=1-3" %%1 in ("^!args^!") do (%\n%
  32.     set /a "i=%%~1 / %%~2", "f=((   ((~(%%~1-%%~2)>>31)&1)   *   ((10000 * (%%~1 - %%~2)) %% ((%%~2) * 10000) / %%~2)   )|((~  ((~(%%~1-%%~2)>>31)&1)    &1)*   (((%%~1) * 10000) %% ((%%~2) * 10000) / %%~2)   ))"%\n%
  33.     if "^!f:~3^!" equ "" set "f=0^!f^!"%\n%
  34.     for /f "tokens=1,2" %%a in ("^!i^! ^!f^!") do ( if "%%~3" neq "" ( set "%%~3=%%a.%%b" ) else echo %%~1 / %%~2   =   %%a.%%b )%\n%
  35. )) else set args=
  36. goto :eof
  37.  
  38. :floatDIV
  39.     rem                           BOOL                              GY                                                 BOOL                                    LY
  40.     set /a "i=%~1 / %~2", "f=((   ((~(%~1-%~2)>>31)&1)   *   ((10000 * (%~1 - %~2)) %% ((%~2) * 10000) / %~2)   )|((~  ((~(%~1-%~2)>>31)&1)    &1)*   (((%~1) * 10000) %% ((%~2) * 10000) / %~2)   ))"
  41.  
  42.     if "!f:~3!" equ "" set "f=0!f!"
  43.     if "%~3" neq "" ( set "%~3=!i!.!f!" ) else ( echo %~1 / %~2 =   !i!.!f! )
  44. goto :eof
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement