| ¿øÇü |
int MulDiv(int nNumber, int nNumerator, int nDenominator); |
| MFC ¿øÇü |
ÇØ´çÇÏ´Â ÇÔ¼ö ¾øÀ½ |
| Àμö |
¢ºnNumber : °è»ê¿¡ »ç¿ëµÉ °ª ¢ºnNumerator : °öÇØÁö´Â °ª ¢ºnDenominator : ³ª´©´Â °ª |
| ¸®ÅÏ |
¼º°øÇßÀ» °æ¿ì °è»ê°ªÀ» °öÇÏ°í ³ª´« °á°ú¸¦ ¸®ÅÏÇÑ´Ù. ¿À¹öÇ÷ο찡 ¹ß»ýÇ߰ųª ³ª´©´Â °ªÀÌ 0ÀÎ °æ¿ì´Â -1À» ¸®ÅÏÇÑ´Ù. |
| ¼³¸í |
nNumber * nNumerator / nDenominator ½ÄÀ» °è»êÇÑ´Ù. Áï ù¹øÂ° Àμö¿Í µÎ¹øÂ° Àμö¸¦ °öÇÏ°í ±× °á°ú¸¦ ¼¼¹øÂ° Àμö·Î ³ª´« °á°ú¸¦ ¸®ÅÏÇØ ÁØ´Ù. ´ÙÀ½ ¿¹¸¦ º¸ÀÚ. a=12; ÀÌ °æ¿ì d´Â 12*23/3ÀÇ °á°ú´Â 92·Î °è»êµÈ´Ù. ÀÌ·± °è»êÀº ±»ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇÏÁö ¾Ê°í °ð¹Ù·Î ¼ö½ÄÀ» »ç¿ëÇØµµ µÉ °Í °°Áö¸¸ MulDiv ÇÔ¼ö´Â °è»êÁßÀÇ ¿À¹öÇ÷ο츦 ó¸®ÇØÁشٴ Á¡¿¡ ÀÖ¾î¼ ¼ö½Ä°ú´Â ´Ù¸£´Ù. ¸¸¾à °öÇÑ °á°ú°¡ 32ºñÆ® ¹üÀ§¸¦ ³Ñ¾î¼´õ¶óµµ ³ª´« °á°ú°¡ ´Ù½Ã 32ºñÆ® ¹üÀ§¿¡ µç´Ù¸é Á¤»óÀûÀÎ °è»êÀÌ ¼öÇàµÈ´Ù. ´ÙÀ½ ¿¹Á¦´Â 32ºñÆ® ¹üÀ§¸¦ ³Ñ¾î¼´Â °ö¼À°ú ³ª´°¼ÀÀÇ ¿¹¸¦ º¸¿©ÁØ´Ù.
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
int a,b,c,d;
char str[128];
switch(iMessage) {
case WM_PAINT:
hdc=BeginPaint(hWnd, &ps);
a=1234567;
b=8901234;
c=123456;
d=MulDiv(a,b,c);
wsprintf(str,"°á°ú´Â %dÀÔ´Ï´Ù",d);
TextOut(hdc,10,10,str,lstrlen(str));
EndPaint(hWnd, &ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
a¿Í b¸¦ °öÇÑ °á°ú´Â 1Á¶´ÜÀ§ÀÌÁö¸¸ ÀÌ °ªÀ» ´Ù½Ã ³ª´©¸é 32ºñÆ® ¹üÀ§¾ÈÀÇ °á°ú¸¦ ¸®ÅÏÇϹǷΠÁ¤»óÀûÀÎ °è»êÀ» ÇØ ³½´Ù. ±×·¯³ª ÀÌ ÇÔ¼ö ´ë½Å 1234567 * 8901234 / 123456¶ó´Â ¼ö½ÄÀ» °ð¹Ù·Î »ç¿ëÇϰųª d=a*b/c¶ó´Â ¼ö½ÄÀ» »ç¿ëÇÏ¸é ¿À¹öÇ÷ο쿡 ÀÇÇØ Á¦´ë·Î °á°ú¸¦ °è»êÇÏÁö ¸øÇÑ´Ù. |
| Âü°íÇÔ¼ö |
Int32x32To64, UInt32x32To64 |
| Ç÷§Æû | 95ÀÌ»ó |
| ÂüÁ¶ |
|
|
written by http://www.winapi.co.kr
|