x * 0xCCCCCCCD < 0x33333334로 5의 배수인지 판단하는 놈 <~ 걍 섹스임 ㅇㅇ;;


7aedf405b7f31cf623edf4e6339c706ce5bfc6a42eea1f9eb08b101081008085e7bf12bde90f2ad5977348cd92932ccda39d81



뭘봐 씨발롬아.





















설명) 32bit 자료형에 따라 법 2^32에 대한 5의 역수는 0xCCCCCCCD임.

곧 5k * 0xCCCCCCCD == k (mod 2^32)이고, k는 항상 0x33333334보다 작음.

피승수가 5의 배수가 아니면? (5k + c) * 0xCCCCCCCD = k + c * 0xCCCCCCCD (mod 2^32)이고

c가 0이 아니니 곱셈의 결과는 항상 0x33333334 이상임.


요 전에 프로그래머용 계산기로 1000에 0.4 곱하려는놈 있었지?

1000은 5의 배수니까 1000에 0.2를 곱하는건 1000 * 0xCCCCCCCD와 같음.

(5/2)의 역수는 2*0xCCCCCCCCD = 0x9999999A니까 1000에 0.4를 곱하는건 1000 * 0x9999999A와 같음.



끝. 

요즘은 고수인척하고 좆밥같은 글 쓰는거 유행인가?