0
C++에서 Marsaglia의 곱셈 포함 캐리 알고리즘과 같은 두 개의 부호없는 int 변수에 대해 모듈러스 연산자를 사용하려고합니다. 결과는 옳았지만 모듈러스의 한계는 확실하지 않습니다.부호없는 정수로 모듈로
m_upperBits = (36969 * (m_upperBits & 65535) + (m_upperBits >> 16))<<16;
m_lowerBits = 18000 * (m_lowerBits & 65535) + (m_lowerBits >> 16);
unsigned int sum = m_upperBits + m_lowerBits; /* 32-bit result */
unsigned int mod = (max-min+1);
int result=min+sum%mod;
'usigned int '는 정확히 32 비트를 보장하지 않습니다. Btw, 뭐가 문제 야? – JohnB
확실하지 않은게 확실하지 않습니다 –
"모듈러스의 한계"란 무엇입니까? – harold