MulDiv

¿øÇü

int MulDiv(int nNumber, int nNumerator, int nDenominator);

MFC ¿øÇü

ÇØ´çÇÏ´Â ÇÔ¼ö ¾øÀ½

Àμö

¢ºnNumber : °è»ê¿¡ »ç¿ëµÉ °ª

¢ºnNumerator : °öÇØÁö´Â °ª

¢ºnDenominator : ³ª´©´Â °ª

¸®ÅÏ

¼º°øÇßÀ» °æ¿ì °è»ê°ªÀ» °öÇÏ°í ³ª´« °á°ú¸¦ ¸®ÅÏÇÑ´Ù. ¿À¹öÇ÷ο찡 ¹ß»ýÇ߰ųª ³ª´©´Â °ªÀÌ 0ÀÎ °æ¿ì´Â -1À» ¸®ÅÏÇÑ´Ù.

¼³¸í

nNumber * nNumerator / nDenominator ½ÄÀ» °è»êÇÑ´Ù. Áï ù¹ø° Àμö¿Í µÎ¹ø° Àμö¸¦ °öÇÏ°í ±× °á°ú¸¦ ¼¼¹ø° Àμö·Î ³ª´« °á°ú¸¦ ¸®ÅÏÇØ ÁØ´Ù. ´ÙÀ½ ¿¹¸¦ º¸ÀÚ.

a=12;
b=23;
c=3;
d=MulDiv(a,b,c);

ÀÌ °æ¿ì d´Â 12*23/3ÀÇ °á°ú´Â 92·Î °è»êµÈ´Ù. ÀÌ·± °è»êÀº ±»ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇÏÁö ¾Ê°í °ð¹Ù·Î ¼ö½ÄÀ» »ç¿ëÇصµ µÉ °Í °°Áö¸¸ MulDiv ÇÔ¼ö´Â °è»êÁßÀÇ ¿À¹öÇ÷ο츦 ó¸®ÇØÁشٴ Á¡¿¡ À־ ¼ö½Ä°ú´Â ´Ù¸£´Ù. ¸¸¾à °öÇÑ °á°ú°¡ 32ºñÆ® ¹üÀ§¸¦ ³Ñ¾î¼­´õ¶óµµ ³ª´« °á°ú°¡ ´Ù½Ã 32ºñÆ® ¹üÀ§¿¡ µç´Ù¸é Á¤»óÀûÀÎ °è»êÀÌ ¼öÇàµÈ´Ù.

¿¹Á¦ 1

´ÙÀ½ ¿¹Á¦´Â 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