Skip to content

Instantly share code, notes, and snippets.

@GZShi
Last active August 29, 2015 14:21
Show Gist options
  • Save GZShi/0289f572a4c82d543a8f to your computer and use it in GitHub Desktop.
Save GZShi/0289f572a4c82d543a8f to your computer and use it in GitHub Desktop.
var fastItoa = (function () {
// 使用 2n 作为索引
var table = [
'0', '0',
'0', '1',
'0', '2',
...
'9', '8',
'9', '9'
];
return function (num) {
var ret = '';
if (num < 10000) {
var n1 = (num / 100) << 1; // 高位
var n2 = (num % 100) << 1; // 低位
if (value >= 1000) {
ret = ret + table[n1];
}
if (value >= 100) {
ret = ret + table[n1 + 1];
}
if (value >= 10) {
ret = ret + table[n2];
}
ret = ret + table[n2 + 1];
} else if (value < 10000 * 10000) {
var h = num / 10000;
var l = num % 10000;
var n1 = (h / 100) << 1;
var n2 = (h % 100) << 1;
var n3 = (l / 100) << 1;
var n4 = (l % 100) << 1;
if (num >= 1000 * 10000) {
ret = ret + table[n1];
}
if (num >= 100 * 10000) {
ret = ret + table[n1 + 1];
}
if (num >= 10 * 10000) {
ret = ret + table[n2];
}
ret = ret + table[n2 + 1];
ret = ret + table[d3] + table[d3 + 1] + table[d4] + table[d4 + 1];
} else {
var h = num / 100000000;
num = num % 100000000;
if (h >= 10) {
var temp = h << 1;
ret = ret + table[temp];
ret = ret + table[temp + 1];
} else {
ret = ret + h;
}
var m = num / 10000;
var l = num / 10000;
var n1 = (m / 100) << 1;
var n2 = (m % 100) << 1;
var n3 = (l / 100) << 1;
var n4 = (l % 100) << 1;
ret = ret +
table[n1] + table[n1 + 1] +
table[n2] + table[n2 + 1] +
table[n3] + table[n3 + 1] +
table[n4] + table[n4 + 1];
}
return ret;
};
}());
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment