最快的方式获得排序顺序字节数组从有符号整数

本文关键字:数组 字节数 整数 符号 字节 顺序 方式获 排序 | 更新日期: 2023-09-27 18:12:33

我知道我可以使用比特转换器。GetBytes从整数中获取字节数。但是,我需要一个数组,其中的内容可以比较排序顺序。

var plusOne = BitConverter.GetBytes(1);
yields bytes: 0,0,0,1
var plusOne = BitConverter.GetBytes(2);
yields bytes: 0,0,0,2

So far So good:

但:

var minusOne = BitConverter.GetBytes(-1);
yields bytes: 255,255,255,255

没什么奇怪的。但是比较minusOne字节数组和plusOne字节数组会发现minusOne字节数组大于plusOne (255> 0)

是否有什么奇特的方法来移位,xor等,使Int。最小会得到0,0,0,0和int。Max会给255,255,255,255 ??

很抱歉混淆了:)

最快的方式获得排序顺序字节数组从有符号整数

只需将int.MaxValue + 1加到当前转换为int的值上,就可以保留范围,如:

var result = BitConverter.GetBytes((uint)((long)input - int.MinValue));