2014-12-13 6 views
2

그래서 지금 암호 알고리즘을 구현 중입니다. 그리고 데이터를 바이트로 변환 한 다음 64 비트로 분할해야합니다. 나는 BitConverter를 사용하여 그것을한다.
가끔 메시지 끝에 8 바이트가 없기 때문에 8 바이트 미만을 ulong으로 변환하는 방법이 궁금합니다.C#에서 8 바이트 미만을 ulong으로 변환하려면 어떻게해야합니까?

BitConverter를 사용하여 수행 할 수있는 방법이 있습니까? 나는 바이트를 이동 시키려고 시도했으나 정확한 바이트 양을 알지 못하기 때문에 너무 복잡합니다.

+0

당신은 64 비트 변수에 대한 8 바이트가 필요합니다. 8보다 작 으면서도 64 비트를 원하면 8 바이트가 될 때까지 왼쪽에서 0 바이트를 채우십시오. – nvoigt

답변

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

참조 :