我不想重新发明轮子,那么在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