首页 > 后端开发 > Golang > 尽管有大小限制,如何在 PostgreSQL 的 BIGINT 中存储 uint64 哈希值?

尽管有大小限制,如何在 PostgreSQL 的 BIGINT 中存储 uint64 哈希值?

DDD
发布: 2024-12-01 01:57:10
原创
983 人浏览过

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

故意为 PostgreSQL 存储溢出整数

在存储 uint64 哈希值的上下文中,该值超出了 PostgreSQL 的 BIGINT 数据类型(有符号)的大小64位),一个常见的解决方案是通过简单地改变类型来将uint64转换为int64

解决方案:

i := uint64(0xffffffffffffffff)
i2 := int64(i)
登录后复制

使用此类型转换,将 uint64 值分配给 int64 变量,同时保持其原始二进制表示形式。这是可能的,因为转换不会更改值的内存表示,仅更改其类型。

输出:

18446744073709551615 -1
登录后复制

将 uint64 转换为 int64 始终是成功,与价值无关。但是,需要注意的是,如果将无类型整型常量值转换为 int64 超过了 int64 可以表示的最大值 (0x7ffffffffffffff),则可能会导致编译时错误。

以上是尽管有大小限制,如何在 PostgreSQL 的 BIGINT 中存储 uint64 哈希值?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板