mul_div.c

来自「单片机C源程序souce」· C语言 代码 · 共 47 行

C
47
字号
/**************************************
File          :  MUL_DIV.C
Project       :  BDTRV20_MCU_V07
Description   :  大数除法运算,a数组中为被除数的16进制,每一个字节中只有大数的4位,从高位排起。返回商
Created       :  2006.11.7
Last updata   :  
Author        :  Sunzehui   sunzehui@zzvcom.com
Compile Tool  :  Keil uVision2
Target Device :  SST89V564RD
Circuit Board :  BD7700
************************************
Modification History
************************************
 Version      : v2.0
 Date         : MM/DD/YYYY
 Modifier     :
 Description  :

 **********************************
 -- Copyright (c)
*************************************/

extern unsigned long mul_div(unsigned char a[16],unsigned long divisor)
	{
	unsigned long xdata temp;//余数
	unsigned long xdata quot=0;//商
	char i,cnt;
	 for(i=7;i>=0;i--)
	   {
		temp=temp<<4;
		temp=temp+a[7-i];
	   }//提取高四个字节
	for (i=7;i<16;i++)
	   {	  		   
	    cnt=0;
	    while(temp>=divisor) //还可以继续减
	        {
	         cnt++;
	         temp=temp-divisor;
	        }
	   quot=quot<<4;
	   quot=quot|cnt;//取得商值
	   temp=temp<<4;
	   temp=temp+a[i+1];    
	   }
   return quot;
	}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?