User:Abstract Alchemi
Jump to navigation
Jump to search
Scripts
Out of some interest in Bases, I wanted to make something that could convert from Base-10 to any other base. Here are my results!
Base-N (1 < N < 67)
<lsl> string integertobase(integer base, integer int){
int = llAbs(int); if(base > 66||base < 1||base == 10) return "-1"; string code = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; string baseInteger; while(int > base){ integer mod = int%base; int = (integer)llList2String(llParseString2List((string)(int/base),["."],[]),0); baseInteger += llGetSubString(code,mod,mod); } if(int != 0) baseInteger += llGetSubString(code,int,int); string str; integer i; for(i = llStringLength(baseInteger)-1; i >= 0; i--) str += llGetSubString(baseInteger,i,i); return str;
}
integer basetointeger(integer base, string src){
if(base > 66||base < 1||base == 10) return -1; integer baseInteger; integer i; string code = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; for(i = 0; i < llStringLength(src);i++){ if(llSubStringIndex(code,llGetSubString(src,i,i)) == -1) return -1; baseInteger += llSubStringIndex(code,llGetSubString(src,i,i))*(integer)llPow(base,llAbs(i-llStringLength(src)+1)); } return baseInteger;
} </lsl>