我有无符号 64 位整数,我想将其用作 App Engine 数据存储区密钥。不幸的是,NDB 数据存储 API 似乎只允许有符号的 64 位整数,最大大小为pow(2, 63)
.
我可以对整数进行二进制补码,但我依赖数据存储中的排序顺序进行查询,所以我希望0xffffffffffffffff
以0x0
升序排序而不是在它之前。我相信如果我对我的 64 位无符号整数进行二进制补码,就会发生这种情况,因为数据存储区索引会0xffffffffffffffff
解释为这种整数,并且会被解释为例如。-1
0x0
0
我可以将每个无符号 64 位密钥从整数更改为字符串甚至十六进制字符串,但这会比将密钥保留为 64 位整数占用更多的数据存储空间。