Path: csiph.com!x330-a1.tempe.blueboxinc.net!feeder3.hal-mli.net!news.alt.net!news.glorb.com!border3.nntp.dca.giganews.com!Xl.tags.giganews.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local2.nntp.dca.giganews.com!news.giganews.com.POSTED!not-for-mail NNTP-Posting-Date: Sun, 19 Jun 2011 16:18:40 -0500 From: Pete Becker Organization: Roundhouse Consulting, Ltd. Newsgroups: comp.lang.c++ Date: Sun, 19 Jun 2011 17:18:40 -0400 Message-ID: <2011061917184032667-pete@versatilecodingcom> References: MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: Conversion of a number from string to vector User-Agent: Unison/2.1.4 Lines: 37 X-Usenet-Provider: http://www.giganews.com X-Trace: sv3-AN7YUMCB/SBDp+/cF7cJi9uRbBGYyBmYPKFXtSb0HnoLzDT1nlDauo654SQWRNkCRJkGam+v0hVhArJ!LXxpBKP6klmMXQFQP1Em2LCRdpD/+DACxkPcJ1kvZ56Jh6za+HlyLGfpEGqKY7W+df3QbAdO X-Complaints-To: abuse@giganews.com X-DMCA-Notifications: http://www.giganews.com/info/dmca.html X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.40 X-Original-Bytes: 2731 Xref: x330-a1.tempe.blueboxinc.net comp.lang.c++:6913 On 2011-06-19 17:06:36 -0400, Anonymous said: > Pete Becker ha scritto: >> On 2011-06-19 07:13:27 -0400, Anonymous said: >> Use an unsigned int, and represent the values in base UINT_MAX + 1. >> That uses all the bits. >> >> To convert a text string, just use the obvious approach: >> >> set the current value to 0 >> set the current position in the string to the leftmost character >> while the character at the current position is in '0'..'9' >> multiply the current value by 10 >> add the value represented by the digit to the current value >> move the current position one place to the right >> >> Try it with pencil and paper a few times to get the feel of it. > > I don't think the algorithm you are describing can use all the bits > available. As I said in my previous thread, the algorithm you are > talking about, which is similar to the one I wrote initially, can > represent the number in base B, where int B is a power of 10. Since the > base it's a power of 10, it cannot profit by all the available bits in > the integer. No, the 10 here is the base of the input. The algorithm I describe is simply interpreting a text string that uses base 10 to describe a numeric value (extending the algorithm to handle additonal bases is left as an exercise). The base B is whatever you use to implement your high precision math. Those two bases are independent of each other. -- Pete Roundhouse Consulting, Ltd. (www.versatilecoding.com) Author of "The Standard C++ Library Extensions: a Tutorial and Reference (www.petebecker.com/tr1book)