Как мне преобразовать менее 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);

Ссылка:

Другие вопросы по тегам