User:Abstract Alchemi: Difference between revisions
Jump to navigation
Jump to search
Created page with '{{skills |Architect= |Builder=* |Machinima= |Scenographer= |Scripter=* |SLogistician= |Terraformer= |}}' |
Finished my progress! |
||
| (3 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
==Scripts== | |||
Out of some interest in [http://en.wikipedia.org/wiki/Base_(mathematics) Bases], I wanted to make something that could convert from [http://en.wikipedia.org/wiki/Decimal 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> | |||
{{skills | {{skills | ||
|Architect= | |Architect= | ||
Latest revision as of 19:52, 29 January 2010
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>