高手解释下这个函数???急啊~~~~~~~~~~~
function encode(opString) {
var _loc2 = opString;
var _loc4 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var _loc1;
var _loc6;
var _loc3 = 0;
for (var _loc5 = ""; _loc2.length>=_loc3+3; _loc5=_loc5+(_loc4.charAt((_loc1 & 16515072) >> 18)+_loc4.charAt((_loc1 & 258048) >> 12)+_loc4.charAt((_loc1 & 4032) >> 6)+_loc4.charAt(_loc1 & 63))) {
_loc1 = (_loc2.charCodeAt(_loc3++) & 255) << 16 | (_loc2.charCodeAt(_loc3++) & 255) << 8 | _loc2.charCodeAt(_loc3++) & 255;
}
if (_loc2.length-_loc3>0 && _loc2.length-_loc3<3) {
_loc6 = Boolean(_loc2.length-_loc3-1);
_loc1 = (_loc2.charCodeAt(_loc3++) & 255) << 16 | (_loc6 ? ((_loc2.charCodeAt(_loc3) & 255) << 8) : (0));
_loc5 = _loc5+(_loc4.charAt((_loc1 & 16515072) >> 18)+_loc4.charAt((_loc1 & 258048) >> 12)+(_loc6 ? (_loc4.charAt((_loc1 & 4032) >> 6)) : ("="))+"=");
}
return (_loc5);
}
function decode(opString) {
var _loc2 = opString;
_loc2 = _loc2.replace("=", "");
var _loc3 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var _loc4;
var _loc5 = "";
var _loc1 = 0;
for (var _loc1 = 0; _loc1<_loc2.length; _loc1=_loc1+4) {
_loc4 = (_loc3.indexOf(_loc2.charAt(_loc1)) & 255) << 18 | (_loc3.indexOf(_loc2.charAt(_loc1+1)) & 255) << 12 | (_loc3.indexOf(_loc2.charAt(_loc1+2)) & 255) << 6 | _loc3.indexOf(_loc2.charAt(_loc1+3)) & 255;
_loc5 = _loc5+String.fromCharCode((_loc4 & 16711680) >> 16, (_loc4 & 65280) >> 8, _loc4 & 255);
}
return (_loc5);
}