<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBS: Перевод из 36 в 10 систему счисления]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=11765&amp;type=atom" />
	<updated>2016-06-28T05:56:13Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=11765</id>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Перевод из 36 в 10 систему счисления]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=105634#p105634" />
			<content type="html"><![CDATA[<p>Хотя не так тут всё просто, как сперва подумалось. Ведь если в одной системе счисления справа нули, то в другой это не так.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2016-06-28T05:56:13Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=105634#p105634</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Перевод из 36 в 10 систему счисления]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=105632#p105632" />
			<content type="html"><![CDATA[<p>Не то чтобы вообще без использования числовых переменных, а вот без этой общей, куда вы всё суммируете. Поразрядно вычислять.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2016-06-28T05:32:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=105632#p105632</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Перевод из 36 в 10 систему счисления]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=105630#p105630" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>YMP пишет:</cite><blockquote><p>Вычислять каждую цифру по очереди, не аккумулируя всё число в одной переменной.</p></blockquote></div><p>Не понял.<br />Как вычислить 36 в 15 степени без использования числовой переменной?</p>]]></content>
			<author>
				<name><![CDATA[MikeSh]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24507</uri>
			</author>
			<updated>2016-06-28T04:36:59Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=105630#p105630</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Перевод из 36 в 10 систему счисления]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=105629#p105629" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>MikeSh пишет:</cite><blockquote><p>хотелось бы узнать по подробнее.</p></blockquote></div><p>Вычислять каждую цифру по очереди, не аккумулируя всё число в одной переменной.</p><p>В AutoHotkey числа 64-битные знаковые, т.е. получается 63 значащих бита. Если число перевалит за 0x7FFFFFFFFFFFFFFF, то начинает отображаться как отрицательное.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2016-06-28T03:32:40Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=105629#p105629</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Перевод из 36 в 10 систему счисления]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=105621#p105621" />
			<content type="html"><![CDATA[<p><strong>YMP</strong><br />Я примерно так и понял, что с разрядностью проблема (попутно нашёл ошибку в скрипте, но это не важно)<br />А вот как<br /></p><div class="quotebox"><blockquote><p>переводить из строкового представления в строковое, минуя числовую переменную.</p></blockquote></div><p>хотелось бы узнать по подробнее.</p><p>В данный момент реализовал весь функционал на ahk, там такой проблемы нет, но он мне меньше нравится, я его (синтаксис) не всегда понимаю.</p>]]></content>
			<author>
				<name><![CDATA[MikeSh]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24507</uri>
			</author>
			<updated>2016-06-27T20:09:56Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=105621#p105621</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Перевод из 36 в 10 систему счисления]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=105613#p105613" />
			<content type="html"><![CDATA[<p>Вы тут прежде всего упираетесь в границу точности того типа числа, который использует в данном случае VBS в переменной Re. Это дробное число двойной точности (VT_R8), которое в памяти хранится в виде мантиссы и экспоненты, и мантисса имеет 53 бита. Т.е. вплоть до числа 9007199254740992 можно этим типом выразить каждое число. Дальше только каждое второе, потом каждое четвёртое и т.д. Т.е. такие числа, у которых дальше первых 53 битов идут нули. Поэтому и в десятичном представлении есть ограничение на число значащих цифр.</p><p>Так что, если не хотите цифры терять, придётся переводить из строкового представления в строковое, минуя числовую переменную.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2016-06-27T16:45:15Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=105613#p105613</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBS: Перевод из 36 в 10 систему счисления]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=105586#p105586" />
			<content type="html"><![CDATA[<p>Добрый день.<br /></p><div class="codebox"><pre><code>Set lDict = CreateObject(&quot;Scripting.Dictionary&quot;)
lDict.Add &quot;0&quot;, 0
lDict.Add &quot;1&quot;, 1
lDict.Add &quot;2&quot;, 2
lDict.Add &quot;3&quot;, 3
lDict.Add &quot;4&quot;, 4
lDict.Add &quot;5&quot;, 5
lDict.Add &quot;6&quot;, 6
lDict.Add &quot;7&quot;, 7
lDict.Add &quot;8&quot;, 8
lDict.Add &quot;9&quot;, 9
lDict.Add &quot;A&quot;, 10
lDict.Add &quot;B&quot;, 11
lDict.Add &quot;C&quot;, 12
lDict.Add &quot;D&quot;, 13
lDict.Add &quot;E&quot;, 14
lDict.Add &quot;F&quot;, 15
lDict.Add &quot;G&quot;, 16
lDict.Add &quot;H&quot;, 17
lDict.Add &quot;I&quot;, 18
lDict.Add &quot;J&quot;, 19
lDict.Add &quot;K&quot;, 20
lDict.Add &quot;L&quot;, 21
lDict.Add &quot;M&quot;, 22
lDict.Add &quot;N&quot;, 23
lDict.Add &quot;O&quot;, 24
lDict.Add &quot;P&quot;, 25
lDict.Add &quot;Q&quot;, 26
lDict.Add &quot;R&quot;, 27
lDict.Add &quot;S&quot;, 28
lDict.Add &quot;T&quot;, 29
lDict.Add &quot;U&quot;, 30
lDict.Add &quot;V&quot;, 31
lDict.Add &quot;W&quot;, 32
lDict.Add &quot;X&quot;, 33
lDict.Add &quot;Y&quot;, 34
lDict.Add &quot;Z&quot;, 35

a = &quot;000003PNKXIIEVSB&quot;
Re = 0
For i = 0 To Len(a) - 1
  CurL = Mid(a, i + 1, 1)
  Re = Re + lDict.Item(CurL)*(36^(Len(a) - i))
Next
msgbox Re</code></pre></div><p>С алгоритмом перевода проблем нет, проблема с получением результата, например такого<br /></p><div class="codebox"><pre><code>4,88664000042785E+17</code></pre></div><p>Собственно вопрос, как получить число полностью, без E+?<br />Пробовал FormatNumber, но там в конце нули, т.е. заведомо неправильный результат.<br />Заранее спасибо.</p>]]></content>
			<author>
				<name><![CDATA[MikeSh]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24507</uri>
			</author>
			<updated>2016-06-27T08:52:55Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=105586#p105586</id>
		</entry>
</feed>
