Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试将负值存储到 Redis 位集中,但操作失败并出现以下错误:
位偏移量不是整数或超出范围
有人可以解释为什么不支持在 Redis 位集中存储负数吗?
因为没有人使用负数引用位集中的位置。位数组中的位集,因此它的索引是一个正整数。
如果您有一个负数(例如来自散列函数),那么您需要先将其转换为无符号整数。在大多数语言中这样做很简单。
在 Java 的特定情况下,要将有符号的 int 转换为 long 的底部 32 位中的无符号值,您需要与 0xffffffffL 进行与运算。请参阅以下链接:
将有符号整数转换为无符号长整数的最佳方法?