C# Equivalent of python3 int.to_bytes



我不想重新发明轮子,那么在C#中有类似于python3的int.to_bytes(int,"big")吗?

我想这就是我要手动做的。

private byte[] IntToBytesBig(int number, int len)
{
byte[] bytes = BitConverter.GetBytes(number);
if (BitConverter.IsLittleEndian)                //if little endian, reverse to get big endian
Array.Reverse(bytes);
if (bytes.Length == len) return bytes;          //if already desired length, return.
if (bytes.Length > len)                         //if length is too long, remove some elements
{
var bytesTmp = Array.Empty<byte>();
bytes.CopyTo(bytesTmp, bytes.Length - len);
bytes = bytesTmp;
}
else                                            //if length is too small, add 0's in byte
{
Array.Reverse(bytes);
for (var i = bytes.Length; i < len; i++)
bytes[i] =(byte) 0;
Array.Reverse(bytes);
}
return bytes;
}

看看BinaryPrimitives

最新更新