Để thêm vào câu trả lời hiện có ở đây, có một chút của một hình ảnh xác thực trong đó Bitconverter.ToInt32()
sẽ ném một ArgumentException
nếu mảng nhỏ hơn sizseof(int)
(4) byte về kích thước;
Mảng đích không đủ dài để sao chép tất cả các mục trong bộ sưu tập. Kiểm tra chỉ số mảng và độ dài.
Cho một mảng nhỏ hơn sizeof(int)
(4) byte về kích thước, bạn có thể bù đắp cho phần đệm trái/phải như vậy;
phải pad
Kết quả trong dương Int32
số
int intByteSize = sizeof(int);
byte[] padded = new byte[intByteSize];
Array.Copy(sourceBytes, 0, padded, 0, sourceBytes.Length);
sourceBytes = padded;
Left-pad
Kết quả trong Int32
số âm, giả định khác không có giá trị ở chỉ số byte sourceBytes.Length - 1
.
int intByteSize = sizeof(int);
byte[] padded = new byte[intByteSize];
Array.Copy(sourceBytes, 0, padded, intByteSize - sourceBytes.Length, sourceBytes.Length);
sourceBytes = padded;
Khi đã đệm, bạn có thể gọi một cách an toàn int myValue = BitConverter.ToInt32(sourceBytes, 0);
.
Ký hiệu và độ lớn? Bổ sung của hai? – Ani
Đó là trong bổ sung của hai –