我正在尝试为图像创建哈希函数,以便从数据库中找到类似的哈希函数。 散列只是一系列位(101110010),其中每个位代表一个像素。由于每张图像大约有60个像素,我认为最好将其保存为UInt64。
现在,当循环每个像素并计算每个位时,我如何连接它们并将它们保存为UInt64?
谢谢你的帮助。
答案 0 :(得分:4)
使用一些麻烦:
long mask = 0;
// For each bit that is set, given its position (0-63):
mask |= 1 << position;
答案 1 :(得分:3)
你使用这样的按位运算符:
ulong it1 = 0;
ubyte b1 = 0x24;
ubyte b2 = 0x36;
...
it1 = (b1 << 48) | (b2 << 40) | (b3 << 32) .. ;
或者,您可以使用BitConvert.Uint64()
函数将字节数组快速转换为int64。但你确定目标长8个字节吗?