1
私は整数からバイトを得るためにbitconverter.GetBytesを使うことができます。 しかし、ソート順の内容を比較できる配列が必要です。符号付き整数からソート順バイト配列を得る最も速い方法
これまでのところ
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を返します。混乱:)
私は、このソリューション'unchecked((UINT)(思い付きましたint.MinValue ^(1 << 31)))大きなデータ型に落ちる必要はありません.. –