首页 > 解决方案 > C# 等效于 python3 int.to_bytes

问题描述

我不想重新发明轮子,那么int.to_bytes(int,"big")在 C# 中有没有来自 python3 的等价物?

我猜这就是我会手动做的事情。

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;
        }

标签: c#

解决方案



推荐阅读