<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; Алгоритм деления больших чисел.]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=17992</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=17992&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Алгоритм деления больших чисел.».]]></description>
		<lastBuildDate>Thu, 23 Nov 2023 10:36:04 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Алгоритм деления больших чисел.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=159530#p159530</link>
			<description><![CDATA[<p>Так наверное правильнее и понятнее<br /></p><div class="codebox"><pre><code>function div(a, b, c)

	local Q, R, tmp;

	Q, R  = (a // c) &lt;&lt; 32, a % c;
	tmp = ((R &lt;&lt; 32) + b);
	Q, R = Q + (tmp // c), tmp % c;

	return Q, R

end</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (DnsIs)]]></author>
			<pubDate>Thu, 23 Nov 2023 10:36:04 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=159530#p159530</guid>
		</item>
		<item>
			<title><![CDATA[Re: Алгоритм деления больших чисел.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=159464#p159464</link>
			<description><![CDATA[<p><strong>teadrinker</strong><br />Ну да, нужно было реализовать беззнаковое деление двух регистров на другой:<br /></p><div class="codebox"><pre><code>mov eax, 0x3D202A1D
mov edx, 0xAA1008F4
mov ecx, 0xB8AB7B9E
div ecx</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (DnsIs)]]></author>
			<pubDate>Fri, 10 Nov 2023 05:04:24 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=159464#p159464</guid>
		</item>
		<item>
			<title><![CDATA[Re: Алгоритм деления больших чисел.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=159463#p159463</link>
			<description><![CDATA[<p>А делить только на 32-битное нужно?<br /></p><div class="codebox"><pre><code>div(0xAA1008F4, 0x3D202A1D, 0xFFFFFFFFF)</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Thu, 09 Nov 2023 06:40:50 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=159463#p159463</guid>
		</item>
		<item>
			<title><![CDATA[Re: Алгоритм деления больших чисел.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=159462#p159462</link>
			<description><![CDATA[<p><strong>teadrinker</strong> Спасибо.</p><p>Сделал реализацию <a href="https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F#%D0%94%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%86%D0%B5%D0%BB%D1%8B%D1%85_%D1%87%D0%B8%D1%81%D0%B5%D0%BB_(%D0%B1%D0%B5%D0%B7_%D0%B7%D0%BD%D0%B0%D0%BA%D0%B0)_%D1%81_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%BE%D0%BC">двоичного деления в столбик</a></p><p>Поковырял Ваш <strong>&quot;BigInteger.js&quot;</strong> но потом придумал свою реализацию для себя.<br />Но, делимое пришлось разбить на два 32-битных числа.</p><div class="codebox"><pre><code  class="lua">function div(a, b, c)

	local i, d, q = math.floor(2 ^ 32);

	q = (i % c) * a + b;
	d = (i // c) * a + q // c;
	q = q % c;

	return d, q

end</code></pre></div><p>div(0xAA1008F4, 0x3D202A1D, 0xB8AB7B9E)</p>]]></description>
			<author><![CDATA[null@example.com (DnsIs)]]></author>
			<pubDate>Thu, 09 Nov 2023 03:52:25 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=159462#p159462</guid>
		</item>
		<item>
			<title><![CDATA[Re: Алгоритм деления больших чисел.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=159453#p159453</link>
			<description><![CDATA[<p>Какой-нибудь <a href="https://www.npmjs.com/package/big-integer">библиотекой</a> воспользоваться?<br /></p><div class="codebox"><pre><code>bigInteger := WebRequest(&quot;https://peterolson.github.io/BigInteger.js/BigInteger.min.js&quot;)
js := GetJS()
js.eval(bigInteger)
res := js.eval(&quot;bigInt(&#039;AA1008F43D202A1D&#039;, 16).divmod(0xB8AB7B9E)&quot;)
MsgBox % &quot;0x&quot; . res.quotient.toString(16) . &quot;`n0x&quot; . res.remainder.toString(16)

WebRequest(url, method := &quot;GET&quot;, HeadersArray := &quot;&quot;, body := &quot;&quot;, ByRef error := &quot;&quot;) {
   Whr := ComObjCreate(&quot;WinHttp.WinHttpRequest.5.1&quot;)
   Whr.Open(method, url, true)
   for name, value in HeadersArray
      Whr.SetRequestHeader(name, value)
   Whr.Send(body)
   Whr.WaitForResponse()
   status := Whr.status
   if (status != 200)
      error := &quot;HttpRequest error, status: &quot; . status
   Arr := Whr.responseBody
   pData := NumGet(ComObjValue(arr) + 8 + A_PtrSize)
   length := arr.MaxIndex() + 1
   Return StrGet(pData, length, &quot;UTF-8&quot;)
}

GetJS() {
   static Doc, JS
   if !Doc {
      Doc := ComObjCreate(&quot;htmlfile&quot;)
      Doc.write(&quot;&lt;meta http-equiv=&quot;&quot;X-UA-Compatible&quot;&quot; content=&quot;&quot;IE=9&quot;&quot;&gt;&quot;)
      JS := Doc.parentWindow
      ( Doc.documentMode &lt; 9 &amp;&amp; JS.execScript() )
   }
   Return JS
}</code></pre></div><p>Код на AHK v1, проще на Node.js.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Tue, 07 Nov 2023 13:38:12 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=159453#p159453</guid>
		</item>
		<item>
			<title><![CDATA[Алгоритм деления больших чисел.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=159450#p159450</link>
			<description><![CDATA[<p>Приветствую.</p><p>Я пишу на Lua, но это совсем не главное.</p><p>Нужно большое беззнаковое число разделить и получить целое и остаток. (в lua // - целое, % - остаток)<br />Беру число 0xAA1008F43D202A1D&nbsp; = -6192439642543871459 = 12254304431165680157</p><p>Так вот lua работает со знаковым числом:<br /></p><div class="codebox"><pre><code>0xAA1008F43D202A1D // 0xB8AB7B9E) &amp; 0xffffffff = 0x88DE614D        
0xAA1008F43D202A1D % 0xB8AB7B9E = 0x94B11D97</code></pre></div><p>А мне нужен результат.<br /></p><div class="codebox"><pre><code>0xAA1008F43D202A1D // 0xB8AB7B9E) &amp; 0xffffffff = 0xEBC02966
0xAA1008F43D202A1D % 0xB8AB7B9E = 0x71809B29</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (DnsIs)]]></author>
			<pubDate>Tue, 07 Nov 2023 09:06:28 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=159450#p159450</guid>
		</item>
	</channel>
</rss>
