<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; CMD/BAT: 24-битная экспонента]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=11608</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=11608&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «CMD/BAT: 24-битная экспонента».]]></description>
		<lastBuildDate>Fri, 20 May 2016 10:09:08 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[CMD/BAT: 24-битная экспонента]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=103972#p103972</link>
			<description><![CDATA[<p>Аналог exp(x) в VBcript int(exp((a/2^24)*log(2))*2^24) : </p><div class="codebox"><pre><code>@echo off
setlocal enabledelayedexpansion
set c=1
for %%i in (
    rem Продолжение квадратных корней двойки
	23726566 19951584 18295683 17520006 17144589 16959907 16868314 16822703
	16799944 16788576 16782895 16780055 16778635 16777925 16777570 16777393
	16777304 16777260 16777238 16777227 16777221 16777218 16777217 16777216
) do (
	set exp[!c!]=%%i
	set /a c+=1
)
set num=%1
set number=16777216
for /l %%i in (1,1,24) do (
	set /a &quot;mask=(num &gt;&gt; (24-%%i)) &amp; 1&quot;
	if !mask!==1 call :mul24 !number! !exp[%%i]! number
)
Echo !number!
endlocal
exit /b

:mul24
setlocal
set a=%1
set b=%2
set /a &quot;n=((a &gt;&gt; 12)*(b &gt;&gt; 12))+(((a &amp; 0xFFF)*(b &gt;&gt; 12)) &gt;&gt; 12)+(((a &gt;&gt; 12)*(b &amp; 0xFFF)) &gt;&gt; 12)&quot;
endlocal&amp;set %3=%n%
goto :eof
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (torus)]]></author>
			<pubDate>Fri, 20 May 2016 10:09:08 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=103972#p103972</guid>
		</item>
	</channel>
</rss>
