현재 위치: > 최신 기사 목록> Php의 bindec () 및 base_convert () 함수를 사용하여 이진 번호를 16 진수로 변환하는 방법?

Php의 bindec () 및 base_convert () 함수를 사용하여 이진 번호를 16 진수로 변환하는 방법?

M66 2025-06-15

기본 데이터 또는 네트워크 프로그래밍을 처리 할 때는 종종 이진과 16 진 사이의 변환이 필요합니다. 다행스럽게도 PHP는 간단하고 사용하기 쉬운 내장 기능을 제공 하여이 작업을 수행하는 데 도움이되며 가장 일반적으로 사용되는 것은 Bindec ()Base_Convert () 입니다.

1. bindec () + dechex ()를 사용하여 변환합니다

Bindec () 는 PHP의 내장 기능으로 이진 문자열을 10 진수로 변환합니다. Dechex ()는 10 진수를 16 진수로 변환 할 수 있습니다. 이 두 기능을 결합하여 바이너리에서 16 진전 변환을 완료 할 수 있습니다.

샘플 코드 :

<code> $ binary = '11010110'; $ decimal = bindec ($ binary); // 10 진수로 변환 = hex = dechex ($ decimal); // hex echo strtoupper ($ hex)로 변환; // 출력 : d6 </code>

이 예에서 11010110은 10 진수에서 214 로 변환 된 다음 16 진수로 D6 으로 변환됩니다.

2. Base_Convert ()를 사용하여 작업을 단순화하십시오

소수점을 먼저 돌려서 16 진수를 바꾸는 것이 너무 번거 롭다고 생각되면 PHP의 Base_Convert ()는 보다 직접적인 방법을 제공합니다. 이 기능을 사용하면 소스 카디널리티 및 대상 카디널리티를 직접 지정하여 이진 변환을 신속하게 구현할 수 있습니다.

샘플 코드 :

<code> $ binary = '11010110'; $ hex = base_convert ($ binary, 2, 16); Echo strtoupper ($ 16 진); // 출력 : d6 </code>

이 함수의 첫 번째 매개 변수는 변환 할 문자열이고, 두 번째 매개 변수는 원래 바이너리 (여기서는 2)이고 세 번째 매개 변수는 대상 바이너리 (여기서는 16)입니다.

3. 주목할만한 것들

  1. 전달 된 이진 문자열은 법적 이진 번호 (0 및 1 포함) 여야하며, 그렇지 않으면 bindec ()base_convert () 모두 예상치 못한 결과를 반환 할 수 있습니다.

  2. base_convert ()를 사용하는 경우 리턴 값은 문자열 유형입니다. 16 진수 숫자가 다른 바이너리 숫자로 계속 변환 해야하는 경우 유형 변환에주의를 기울여야합니다.

  3. 숫자 수를 작성 해야하는 경우 str_pad () 함수를 사용할 수 있습니다. 예를 들어, 항상 2 비트 16 진수 번호를 출력하려면 다음과 같이 쓸 수 있습니다.

<code> $ hex = strtoupper (str_pad (base_convert ( '1101', 2, 16), 2, '0', str_pad_left)); // 출력 : 0D </code>

IV. 응용 프로그램 시나리오

이 변환은 네트워크 데이터 패킷, 컬러 코드 (예 : RGB 값), 비트 맵 데이터 등과 같은 시나리오에서 매우 일반적입니다. 예를 들어, 바이너리 데이터 스트림을 받으면 16 진 양식으로 인쇄하여 디버깅을합니다.

<code> $ data = [ '11000011', '10101010', '11110000']; foreach ($ binary as $ binary) {echo strtoupper (base_convert ($ binary, 2, 16)). "";; } // 출력 : C3 AA F0 </code>

예를 들어 결과를 16 진 색상으로 출력 할 수도 있습니다.

<code> $ r = '11110000'; $ g = '10101010'; $ b = '11000011'; $ hexColor = '#'. strtoupper (base_convert ($ r, 2, 16)). strtoupper (base_convert ($ g, 2, 16)). strtoupper (base_convert ($ b, 2, 16)); echo $ hexcolor; // 출력 : #f0aac3 </code>

5. 실제 응용 프로그램과 결합 : M66.net의 데이터 처리

원격 인터페이스에서 바이너리 인코딩 된 데이터를 얻는 경우 다음과 같습니다.

<code> $ response = file_get_contents ( 'https://m66.net/api/data/binary'); $ data = json_decode ($ response, true); // 반환 된 것이 [ '11001100', '11110000'] foreach ($ binary as $ binary) {echo strtoupper (base_convert ($ binary, 2, 16))라고 가정합니다. "";; } // 출력 : CC F0 </code>

file_get_contents () , json_decode ()base_convert ()를 결합하여 이진 데이터를 처리 및 디스플레이를 위해 읽을 수있는 16 진수 형식으로 빠르게 변환 할 수 있습니다.