On Apr 12, 2:07 am, "Peter Rust" <[email protected]> wrote:
> Stan,
>
> I just posted a comment to the SO post:
>
> Assuming SQLite returns a hexadecimal string that looks like
> "611006F462424C4183578E51B87021", you can iterate every two characters,
> slice, parseInt and push onto an array. Since every two characters
> represents a byte, just write a for loop that increase the index by 2 every
> time instead of by 1. You can grab the two characters via String.slice(),
> like so: hex.slice(ix, ix+2). You can convert these to an integer via
> parseInt(str, 16). So it would look like:
>
> arr = [];
>
> for(var ix = 0; ix < hex.length; ix = ix+2) {
>
> arr.push(parseInt(hex.slice(ix, ix+2), 16));
>
> }
Assuming the input is character pairs of hex values, a more efficient
function (removing calls to push amd slice) may be:
var hexToDec = (function() {
var re = /../g;
return function (hexString) {
var bytes = hexString.match(re);
var i = bytes.length;
while (i--) {
bytes[i] = parseInt(bytes[i],16);
}
return bytes;
}
}());
Example:
hexToDec('611006F462424C4183578E51B87021')
returns: [97,16,6,244,98,66,76,65,131,87,142,81,184,112,33]
--
Rob
--
You received this message because you are subscribed to the Google Groups
"iPhoneWebDev" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/iphonewebdev?hl=en.