.NET フレームワークが、要求された適切なエンディアンでバイト配列を明示的に返すだけの BitConverter クラスから関数/メソッドを提供するだけでよかったと思います。
私は他のコードでこのようないくつかの機能を実行しましたが、より短いより直接的な方法はありますか? (この概念は、PBKDF2、Skein、HMAC、BLAKE2、AES などを含むさまざまな暗号およびパスワード派生コンテキストで TON として使用されるため、効率が重要です)
// convert an unsigned int into an array of bytes BIG ENDIEN
// per the spec section 5.2 step 3 for PBKDF2 RFC2898
static internal byte[] IntToBytes(uint i)
{
byte[] bytes = BitConverter.GetBytes(i);
if (!BitConverter.IsLittleEndian)
{
return bytes;
}
else
{
Array.Reverse(bytes);
return bytes;
}
}
また、他の人がこの質問に苦労していることもわかりましたが、まだ良い答えを見ていません:( 「エンディアン」に対処する方法