>  기사  >  백엔드 개발  >  Go의 바이트에서 비트 표현을 추출하는 방법은 무엇입니까?

Go의 바이트에서 비트 표현을 추출하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-04 02:49:021009검색

How to Extract Bit Representations from Bytes in Go?

Go의 바이트에서 비트 표현을 검색하는 방법

문제:

바이트의 비트 표현을 결정합니다. 바이트(1)에서 "00000001"을 가져오는 것과 같습니다.

해결책:

비트 표현을 추출하는 데는 두 가지 접근 방식이 있습니다.

  1. 형식을 사용한 시각적 표현:

    • fmt.Sprintf(" b", ...)를 사용하세요. 이는 8비트 형식을 보장하기 위해 앞에 0이 있는 바이트 비트의 문자열 표현을 생성합니다.
  2. 수학적 연산을 위한 비트별 연산:

    • 비트 AND 연산자를 사용하여 특정 비트를 계산합니다.
    • 원하는 비트를 1로 설정하고 나머지는 0(2n-1)으로 설정하여 마스크를 만듭니다.
    • 바이트와 마스크의 비트별 AND를 수행합니다.
    • 결과가 마스크와 같으면 비트는 1입니다. 그렇지 않으면 0입니다.

예:

바이트(13)의 비트를 찾으려면:

<code class="go">fmt.Print(13 & 1) // Output: 1
fmt.Print(13 & 2) // Output: 0
fmt.Print(13 & 4) // Output: 4
fmt.Print(13 & 8) // Output: 8</code>

이는 13의 비트 표현이 "00001101"임을 보여줍니다.

추가 참고:

바이트 간 해밍 거리를 계산하기 위해 제공된 코드는 비트 단위를 사용합니다. 각 비트를 개별적으로 비교하는 작업입니다. 이 함수는 일치하지 않는 비트 수를 계산하고 거리를 반환합니다.

위 내용은 Go의 바이트에서 비트 표현을 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.