|
|
Subject:
Convert LARGE decimal numbers to Hex
Category: Computers > Algorithms Asked by: ricjohnsoniii-ga List Price: $55.00 |
Posted:
09 May 2005 20:34 PDT
Expires: 08 Jun 2005 20:34 PDT Question ID: 519786 |
|
There is no answer at this time. |
|
Subject:
Re: Convert LARGE decimal numbers to Hex
From: quadraticresidue-ga on 11 May 2005 13:33 PDT |
I am not sure what you mean by "magic number". It looks like you might be referring to the following algorithm for square root: http://www.dattalo.com/technical/theory/sqrt.html As the author notes, the algorithm is similar to long division, so I can't see why you object to using long division. |
Subject:
Re: Convert LARGE decimal numbers to Hex
From: idoivri-ga on 16 May 2005 00:50 PDT |
might this help you? http://www.permadi.com/tutorial/numConvJs/ It's a nice number converter from / to - Dec/Bin/Hex that converts your number as you type it. I tried it with some numbers I have and it worked fine. I. |
Subject:
Re: Convert LARGE decimal numbers to Hex
From: ricjohnsoniii-ga on 16 May 2005 13:30 PDT |
Regarding http://www.permadi.com/tutorial/numConvJs/ This number converted is limited to 15 digits. It uses the internal MATH methods and native data types to convert to HEX. I am looking for something that can convert a LARGE number - assume at least 30 digits. |
Subject:
Re: Convert LARGE decimal numbers to Hex
From: thefistofthenorthsta-ga on 31 May 2005 18:50 PDT |
Here's some code I just cooked up. Should do the trick. No magic numbers though. /************************************************ * This function decodes a decimal string and * returns a hexadecimal string. There is no * size limit on the decimal input. ************************************************/ function dec2hex(dec) { //Create a buffer for the hexadecimal var hex = new Array( Math.ceil( dec.length * 0.83048202372184058696757985737235 )); //Initialize as 0 for(var i=0; i<hex.length; i++) hex[i] = 0; //Create raw binary number in hex for(var i=0; i<dec.length; i++) { //Multiply by 10 for(var j=0; j<hex.length; j++) hex[j] *= 10; //Add character hex[0] += parseInt(dec.charAt(i)); //Carry for(var j=0; j < hex.length; j++) if(hex[j] > 16) { hex[j + 1] += Math.floor(hex[j] / 16); hex[j] = hex[j] % 16; } } //Convert raw binary to hex var hex_chars = "0123456789abcdef"; //Strip leading zeros var index = hex.length - 1; while(hex[index] == 0 && index > 0) --index; //Append the hexadecimal digits var result = hex_chars.charAt(hex[0]); for(var i=1; i <= index; i++) result = hex_chars.charAt(hex[i]) + result; //Done return result; } |
Subject:
Re: Convert LARGE decimal numbers to Hex
From: ricjohnsoniii-ga on 03 Jun 2005 11:09 PDT |
I am sorry, I tried to code this, but it did not work for LARGE numbers (50+ digits). Can you clarify the code with comments for each step (I may have coded it wrong). 1) Does the step "//Multiply by 10" encounter an overflow? 2) Why do you work from the lwft (signigicant digits)? 3) This seems the same as long division - can you explain? |
If you feel that you have found inappropriate content, please let us know by emailing us at answers-support@google.com with the question ID listed above. Thank you. |
Search Google Answers for |
Google Home - Answers FAQ - Terms of Service - Privacy Policy |