& 비트 AND 연산자

expression1 & expression2

expression1expression2를 부호 없는 32비트 정수로 변환하고 정수 매개 변수의 각 비트에 대해 부울 AND 연산을 수행합니다. 부동 소수점 숫자는 소수점 뒤의 숫자를 제거하여 정수로 변환됩니다. 그 결과 32비트 정수가 새로 만들어집니다.

양의 정수는 최대값이 4294967295 또는 0xFFFFFFFF인 부호 없는 16진수 값으로 변환되고, 최대값보다 큰 값은 변환될 때 32비트 값을 유지하기 위해 최상위 자릿수를 버립니다. 음수는 2의 보수 표기를 사용하여 최소값이 -2147483648 또는 0x800000000인 부호 없는 16진수 값으로 변환되고, 최소값보다 작은 값은 정밀도가 더 높은 2의 보수로 변환된 후 최상위 자릿수를 버립니다.

반환값은 부호 있는 2의 보수로 해석되므로 -2147483648에서 2147483647 범위의 정수가 됩니다.

지원 버전: ActionScript 1.0, Flash Lite 2.0 - Flash 4에서는 AND 연산자(&)를 사용하여 문자열을 연결했습니다. 그러나 Flash 5 이상에서는 AND 연산자(&)가 비트 AND 연산자이며 문자열을 연결하려면 더하기 연산자(+)를 사용해야 합니다. AND 연산자(&)를 사용하는 Flash 4 파일을 Flash 5 이상의 제작 환경으로 가져오면 더하기 연산자(+)를 사용할 수 있도록 자동으로 업데이트됩니다.

참고: 이 연산자의 비헤이비어는 Flash Lite 버전에 따라 다릅니다. 예를 들어, Flash Lite 2.0에서는 AND 연산자(&)가 비트 AND 연산자로 사용됩니다. Flash Lite 2.0에서 문자열을 연결하려면 더하기 연산자(+)를 사용해야 합니다. 그러나 Flash Lite 1.x에서는 AND 연산자(&)를 사용하여 문자열을 연결할 수 있습니다.

피연산자

expression1 : Number - 숫자입니다.

expression2 : Number - 숫자입니다.

반환값

Number - 비트 연산 결과입니다.

예제

다음은 숫자의 비트 표현을 비교한 후 같은 위치의 비트가 둘 다 1인 경우에만 1을 반환하는 예제입니다. 다음 ActionScript 코드에서는 13(이진수 값 1101)과 11(이진수 값 1011)을 더한 후 두 숫자 모두 1이 있는 위치에만 1을 반환합니다.

var insert:Number = 13; 
var update:Number = 11; 
trace(insert & update); // 출력: 9(또는 이진수 1001) 

숫자 13과 11의 경우에는 두 값 모두 첫 번째 자리와 마지막 자리에만 1이 있으므로 결과가 9입니다.

다음 예제에서는 반환값 변환 비헤이비어를 보여 줍니다.

trace(0xFFFFFFFF); // 4294967295 
trace(0xFFFFFFFF & 0xFFFFFFFF); // -1 
trace(0xFFFFFFFF & -1); // -1 
trace(4294967295 & -1); // -1 
trace(4294967295 & 4294967295); // -1 

참고 사항

&= 비트 AND 대입 연산자, ^ 비트 XOR 연산자, ^= 비트 XOR 대입 연산자, | 비트 OR 연산자, |= 비트 OR 대입 연산자, ~ 비트 NOT 연산자