| Subject: [xsl] numerical inconsistencies doing dec to hex conv. From: Peter Doggett <ee99ppd@xxxxxxxxxxxx> Date: Mon, 10 Mar 2003 12:05:02 +0000 (GMT) | 
Hi,
I am using the below template to convert a decimal number 
into a hex number. It seems to work correctly apart from 
when I want to calculate the hex equivelent of the decimal 
number -  4294967295. This number is of particular 
significance as in Hex this should be FFFFFFFF (a 32 bit, 
bitmask; i am using xml to describe registers in h/w).
The template outputs FFFFFFF0 abnd I dont know why.
The template seems to output the incorrect value for 
1099511627775, which is the decimal representation of 
FFFFFFFFFF in hex.
The recursive template is as follows:
<xsl:variable name="hexDigits" select="'0123456789ABCDEF'" />
  <xsl:template name="toHex">
    <xsl:param name="decimalNumber" />
    <xsl:if test="$decimalNumber >= 16">
      <xsl:call-template name="toHex">
        <xsl:with-param name="decimalNumber" select="floor($decimalNumber div 16)" />
      </xsl:call-template>
    </xsl:if>
    <xsl:value-of select="substring($hexDigits, ($decimalNumber mod 16) + 1, 1)" />
</xsl:template>
Can anybody figure out why this is happening or have an 
equivelent template that can calculate the conversion 
correctly?
Thankyou for your time.
----------------------
Peter Doggett
ee99ppd@xxxxxxxxxxxx
 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
| Current Thread | 
|---|
| 
 | 
| <- Previous | Index | Next -> | 
|---|---|---|
| RE: [xsl] HTML input tag problem an, Edward . Middleton | Thread | RE: [xsl] numerical inconsistencies, Michael Kay | 
| Re: [xsl] HTML input tag problem an, Oleg Tkachenko | Date | RE: [xsl] numerical inconsistencies, Jarno . Elovirta | 
| Month |