10진수의 2진수 변환을 위한 함수

아래의 함수를 사용하여 10진수를 2진수로 변환하는 것이 가능하다. 함수를 살펴보면 2로 나눠주는 부분과 2로 나눈 몫을 저장하는 부분이 있는데 이 부분의 숫자 2를 변경하면 10진수 이하의 진법으로 변환하는 일은 어렵지 않을 것이다. 다만 10진수 이상일 경우 11이상의 수를 표현하기 위해 영문자를 써야 하므로 배열을 선언하여 변환하여야 한다.

_global.toBinary = function(decimal:Number) {
	q = Math.floor(decimal/2);
	binarized = [];
	i = 0;
	do {
		quotient = Math.floor(decimal/2);
		remainder = decimal%2;
		binarized[i] = remainder;
		decimal = quotient;
		i++;
	} while (quotient != 0);
	b = binarized.reverse().join("");
	return b;
	//trace(b);
};

10진수에서 2진수의 변환은 복잡하지만 2진수를 10진수로 변환하는 것은 내장 함수인 parseInt() 구문을 통해 간단히 구현할 수 있다.

_global.toDecimal = function(binary:Number) {
	decimal = parseInt(String(binary), 2);
	//trace(decimal);
	return decimal;
};

2진수로의 변환은 이진트리구조를 구현해야 할 경우 유용할 것이다. 이진트리의 흔적을 저장하는 방법으로 이진수의 배열을 선언해서 이를 기억시키고 SharedObject를 통해 이를 로컬에 저장할 수 있다.


About this entry