2014-12-13 67 views
2

所以我現在正在實施一種密碼算法。 而我需要將數據轉換爲字節,然後將其拆分爲64位。我通過使用BitConverter來完成。
但是有時我在消息結尾處沒有8個字節,我不知道如何將少於8個字節轉換爲ulong。如何將少於8個字節轉換爲C#中的ulong?

有什麼辦法可以使用BitConverter來做到嗎?我試過移動字節,但它太複雜了,因爲我不知道字節的確切數量。

+0

你需要一個64位的變量8個字節。如果你少於8並且仍然需要64位,用左邊的零字節填充它們直到你有8個字節。 – nvoigt 2014-12-13 12:29:05

回答

2

0s填充字節數組,直到它符合所需的大小。

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

參考:

相關問題