Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP gmp_scan1() 함수 완벽 정리 – GMP 숫자에서 비트 1 검색하기

PHP의 gmp_scan1() 함수는 GMP(임의 정밀도) 숫자 내에서 비트 값 '1'을 검색하는 함수입니다. 검색은 두 번째 매개변수로 지정한 인덱스부터 시작하며, 해당 위치 이후에서 처음으로 '1'이 나타나는 비트의 인덱스를 반환합니다.

문법

gmp_scan1(n, i)

매개변수

  • n − 검색 대상이 되는 GMP 숫자입니다. 일반적으로 gmp_init() 함수로 생성한 값을 전달합니다.

  • i − 검색을 시작할 인덱스입니다. 비트 위치는 오른쪽에서 왼쪽 방향으로 0부터 계산됩니다.

반환값

gmp_scan1() 함수는 지정한 인덱스 이후에서 처음 발견된 '1' 비트의 인덱스를 반환합니다. 만약 해당 위치 이후에 '1' 비트가 존재하지 않으면 false를 반환합니다.

예제

다음은 gmp_scan1() 함수의 사용 예시입니다.

<?php
    // 2진수 "01010001111"로 GMP 숫자 초기화
    $val = gmp_init("01010001111", 2);
    
    // 인덱스 5부터 '1' 비트 검색
    echo gmp_scan1($val, 5);
?>

출력 결과

7

설명

위 예제에서 2진수 "01010001111"은 오른쪽부터 인덱스가 매겨집니다. 인덱스 5부터 검색을 시작하면 다음과 같이 각 비트를 확인합니다.

  • 인덱스 5: 0
  • 인덱스 6: 0
  • 인덱스 7: 1 ← 첫 번째로 발견된 '1'

따라서 결과값으로 7이 출력됩니다. 참고로 반대 기능을 수행하는 gmp_scan0() 함수도 있는데, 이는 '0' 비트를 검색할 때 사용합니다.