>백엔드 개발 >Golang >크기 제한에도 불구하고 PostgreSQL의 BIGINT에 uint64 해시 값을 어떻게 저장할 수 있습니까?

크기 제한에도 불구하고 PostgreSQL의 BIGINT에 uint64 해시 값을 어떻게 저장할 수 있습니까?

DDD
DDD원래의
2024-12-01 01:57:10910검색

How Can I Store uint64 Hash Values in PostgreSQL's BIGINT Despite Size Limitations?

PostgreSQL 스토리지에 대해 의도적으로 정수 오버플로

PostgreSQL의 BIGINT 데이터 유형 크기를 초과하는 uint64 해시 값을 저장하는 맥락에서(서명됨) 64비트) 일반적인 해결 방법은 다음과 같이 uint64를 int64로 변환하는 것입니다. 이진 표현을 변경하지 않고 유형을 변경하기만 하면 됩니다.

해결책:

i := uint64(0xffffffffffffffff)
i2 := int64(i)

이 유형 변환을 사용하면 uint64 값이 int64 변수에 할당되고 해당 값은 유지됩니다. 원래 이진 표현. 이는 변환이 값의 메모리 표현을 변경하지 않고 해당 유형만 변경하기 때문에 가능합니다.

출력:

18446744073709551615 -1

uint64를 int64로 변환하는 것은 항상 가치에 관계없이 성공했습니다. 다만, 형식화되지 않은 정수 상수 값을 int64로 변환할 경우 int64로 표현할 수 있는 최대값(0x7fffffffffffffff)을 초과하는 경우 컴파일 타임 오류가 발생할 수 있다는 점에 유의해야 합니다.

위 내용은 크기 제한에도 불구하고 PostgreSQL의 BIGINT에 uint64 해시 값을 어떻게 저장할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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