ビット列を整数値に変換する
over view
整数型の変数を二進数として判断し、十進数に変換するユーザ関数。尚、擬似二進数は当然「1と0」のみで表すべきであり、それ以外の数値であってもエラーは返さない 1) ため注意が必要である。
integer bit(integer num);
- integer num … 擬似二進数
example
- ビット列を自然数に変換する。
bit(111); // -> 7
- LSL で扱える整数の最大値は 2,147,483,647 であり 10 桁。従って、このユーザ関数で扱えるのは10ビットまで。
bit(1111111111); // -> 1023
- uuRefer2Bit と連携し、ビット演算子の勉強に。
uuRefer2Bit(bit(1010)|bit(1001)); // -> 0000 0000 0000 0000 0000 0000 0000 1011
code
integer bit(integer num){ string bits = (string)num; integer i; integer end = llStringLength(bits); integer two = 1; integer result; for (i=0; i<end; i++){ result += (integer)(llGetSubString(bits, -i-1, -i-1)) * two; two *= 2; } return result; }
1)
あらぬ数値が返る