Как мне преобразовать менее 8 байтов в ulong в C#?
Поэтому я сейчас реализую алгоритм криптографии. И мне нужно преобразовать данные в байты, а затем разделить их на 64 бита. Я делаю это с помощью BitConverter.
Но иногда у меня нет 8 байтов в конце сообщения, и мне интересно, как преобразовать менее 8 байтов в ulong.
Есть ли способ сделать это с помощью BitConverter? Я попытался сдвинуть байты, но это слишком сложно, так как я не знаю точное количество байтов.
1 ответ
Решение
Заполните байтовый массив нулями, пока он не будет соответствовать требуемому размеру.
byte[] bytes = new byte[255]{ 0x1F, 0x1A, 0x1B, 0x2C, 0x3C, 0x6D, 0x1E }; //7 bytes
while(bytes.length < 8){
bytes.Concat(new byte[] { 0x00 });
}
long res = BitConverter.ToUInt64(bytes, 0);
Ссылка: