gpt4 book ai didi

hadoop - 是否可以将整数编码为字节数组以进行二进制比较

转载 作者:行者123 更新时间:2023-12-02 20:13:50 26 4
gpt4 key购买 nike

我想检查是否有一种方法可以将整数编码为二进制可比较的字节。

示例:假设我有整数 -1 和 1

a) 将 -1 写入字节数组 b1[],将 1 写入 b2[]

b) b1[] 应小于 b2[]

如果我们以大端顺序编写,我相信它适用于正整数,但不适用于负整数。

我正在尝试为 Hadoop 自定义原始 key 比较器执行此操作...

谢谢

阿杰

最佳答案

这是在 C# 中,但您应该能够在您选择的语言中执行与此类似的操作,它将为您提供正整数和负整数的正确排序顺序。
请注意,您需要使用无符号字节类型才能正确排序。

static byte[] EncodeToBytes(int val)
{
val -= int.MinValue;
var result = new byte[4];
for (int i = 0; i < 4; i++, val <<= 8)
result[i] = (byte)(val >> 24);
return result;
}

static int DecodeFromBytes(byte[] val)
{
var result = 0;
for (int i = 0; i < 4; i++)
result = (result << 8) | (val[i] & 0xff);
return result + int.MinValue;
}

关于hadoop - 是否可以将整数编码为字节数组以进行二进制比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9121173/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com