0
바이트를 255보다 큰 int 형으로 캐스팅하는 데 문제가 있습니다. 문제는 동일한 코드를 실행하는 두 개의 프로그램이 있다는 것입니다. 하나는 예외가 있고 다른 하나는 그렇지 않습니다. 심지어 컴파일 설정이 같아도 마찬가지입니다. 코드이있다 : "산술 운전 성이 오버 플로우를 유발"라고 말하는하는 "System.OverflowException이"로xoring 후 int로 바이트 캐스팅
output[i] = (byte)(xorValue);
:
private static byte[] MixRound(byte[] input, Random RNG, int seed)
{
bool[] cellMap = new bool[input.Length];
byte[] output = new byte[input.Length];
for (int i = 0; i < input.Length; i++)
{
int value = input[NewLocation(cellMap, RNG)];
int xor = seed * (i + seed);
int xorValue = value^xor;
output[i] = (byte)(xorValue);
}
return output;
}
예외가 발생 된 라인이있다.
동일한 컴퓨터에서 동일한 코드를 사용하는 두 개의 서로 다른 프로젝트에서는 일반적으로 생각하지 않습니다.
당신은 산술이 켜져 확인해야합니까? –