골랑 단위를 바이트로

王林
풀어 주다: 2023-05-10 19:48:35
원래의
1208명이 탐색했습니다.

Golang 개발 과정에서 바이트 배열로 전송 및 저장하기 위해 정수형을 바이트형으로 변환해야 하는 경우가 종종 있습니다. 그 중 uint 유형은 가장 일반적으로 사용되는 정수 유형 중 하나입니다. 따라서 Golang 개발자가 단위 유형을 바이트로 변환하는 방법을 익히는 것은 매우 중요합니다. 이번 글에서는 golang에서 uint형을 byte형으로 변환하는 방법을 간략하게 소개하겠습니다.

1. 단위를 바이트 유형으로 변환

먼저 단위 유형과 바이트 유형의 기본 저장 방법을 이해해야 합니다. Golang에서 uint 유형은 8바이트의 메모리 공간을 차지하는 부호 없는 정수이고, 바이트 유형은 기본적으로 부호 없는 8비트 정수 유형인 별칭 유형입니다. 따라서 uint 유형을 byte 유형으로 변환하려면 uint 유형의 하위 8비트를 가로채야 합니다. 즉, uint 유형을 8비트 바이트 유형으로 변환해야 합니다.

Golang에서는 유형 어설션을 통해 uint 유형을 바이트 유형으로 변환할 수 있습니다. 구체적인 방법은 다음과 같습니다.

var n uint64 = 256
var b byte
b = byte(n)
fmt.Println(b) // 输出 0
로그인 후 복사

위 코드에서 n 변수는 변환할 uint 유형 값을 나타내고, b 변수는 변환된 byte 유형 값을 나타냅니다. 코드의 세 번째 줄에서는 유형 어설션에 byte(n)을 사용하고 n을 바이트 유형으로 변환합니다. n의 값이 256, 즉 바이너리로 100000000이므로 바이트 타입의 값 범위(바이트 타입의 값 범위는 0~255)를 초과하므로 n의 하위 8비트만 취하고, 결과는 0입니다.

uint 유형은 uint8, uint16, uint32, uint64와 같은 부호 없는 정수 유형일 수 있습니다. uint 유형을 바이트 유형으로 변환하는 경우 이를 uint8 유형으로 변환한 다음 유형 어설션을 수행해야 합니다. 구체적인 코드는 다음과 같습니다.

var n uint16 = 256
var b byte
b = uint8(n)
fmt.Println(b) // 输出 0
로그인 후 복사

위 코드에서 n 변수는 uint16 유형입니다. 바이트 유형으로 변환해야 하므로 먼저 uint8 유형으로 캐스팅한 후 유형 어설션을 수행해야 합니다.

2. 예제 데모

아래에서는 uint 유형을 byte 유형으로 변환하는 방법을 보여주는 실제 예제를 보여 드리겠습니다.

package mainimport (    "fmt"    "encoding/binary")func main() {    var n uint16 = 258    var b [2]byte    binary.LittleEndian.PutUint16(b[:], n)    fmt.Println(b) // 输出 [2 1]}
로그인 후 복사

위 코드에서 변수 n은 uint16 유형이고 값은 258입니다. 변수 b는 변환된 바이트 데이터를 저장하는 데 사용되는 길이 2의 바이트 배열입니다. 코드 4번째 줄에서는 binary.LittleEndian.PutUint16() 함수를 사용하여 Uint16형 데이터 n을 바이트형 데이터로 변환하고 그 결과를 배열 b에 저장합니다. 첫 번째 매개변수 b[:]는 바이트 배열의 모든 요소를 ​​나타냅니다. 여기서는 바이트 직렬화를 위해 little-endian을 사용합니다. 즉, 낮은 바이트는 앞쪽에 저장되고 높은 바이트는 뒤쪽에 저장됩니다. 258의 이진 표현은 0000000100000010, 하위 바이트는 00000010, 상위 바이트는 00000001이므로 변환된 결과는 [2,1]입니다.

3. 요약

위의 소개를 통해 Golang에서 uint 유형을 byte 유형으로 변환하는 방법에 대해 배웠습니다. 실제 개발 과정에서 바이트 단위의 데이터를 전송하고 저장해야 하는 경우가 많기 때문에 이 방법을 익히는 것은 매우 유용합니다. 유형 변환을 수행할 때 데이터 전송 및 저장 중 오류를 방지하려면 바이트 순서를 고려해야 합니다.

위 내용은 골랑 단위를 바이트로의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿