我知道我可以使用bitconverter.GetBytes从整数中获取字节。 但是,我需要一个数组,其中可以比较排序顺序的内容。
e.g。
var plusOne = BitConverter.GetBytes(1);
yields bytes: 0,0,0,1
var plusOne = BitConverter.GetBytes(2);
yields bytes: 0,0,0,2
到目前为止一切顺利:
但:
var minusOne = BitConverter.GetBytes(-1);
yields bytes: 255,255,255,255
这里没什么奇怪的。 但是将minusOne字节数组与plusOne字节数组相比较,可以说minusOne字节数组大于plusOne(255> 0)
是否有任何奇特的移位方式,xor等,以便Int.Min会给0,0,0,0和int.Max会给出255,255,255,255 ??
很抱歉这个混乱:)
答案 0 :(得分:2)
只需将int.MaxValue + 1
添加到转换为uint的当前值,即可保留范围,如:
var result = BitConverter.GetBytes((uint)((long)input - int.MinValue));