Difference between revisions of "User:Abstract Alchemi"
Jump to navigation
Jump to search
m (Another minor issue fixed.) |
(Finished my progress!) |
||
Line 1: | Line 1: | ||
==Scripts== | ==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 | 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- | ==Base-N (1 < N < 67)== | ||
<lsl> | <lsl> | ||
string | string integertobase(integer base, integer int){ | ||
int = llAbs(int); if(base > 66||base < 1||base == 10) return "-1"; | |||
string | string code = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; | ||
string baseInteger; | |||
while(int > | while(int > base){ | ||
integer mod = int% | integer mod = int%base; | ||
int = int/ | int = (integer)llList2String(llParseString2List((string)(int/base),["."],[]),0); | ||
baseInteger += llGetSubString(code,mod,mod); | |||
} | } | ||
if(int != 0) | if(int != 0) baseInteger += llGetSubString(code,int,int); string str; integer i; | ||
for(i = llStringLength( | for(i = llStringLength(baseInteger)-1; i >= 0; i--) str += llGetSubString(baseInteger,i,i); | ||
return str; | return str; | ||
} | } | ||
integer | |||
integer | integer basetointeger(integer base, string src){ | ||
string code = " | if(base > 66||base < 1||base == 10) return -1; | ||
integer baseInteger; integer i; | |||
string code = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; | |||
for(i = 0; i < llStringLength(src);i++){ | for(i = 0; i < llStringLength(src);i++){ | ||
if(llSubStringIndex(code,llGetSubString(src,i,i)) == -1) return -1; | 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 | return baseInteger; | ||
} | } | ||
</lsl> | </lsl> |
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>