⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 arith.c

📁 用quartusII编写的
💻 C
字号:
#include "..\..\includes.h"

#if CFG_ARITH_EN > 0

//--------------------------------------------------------------
// 判断当前编译器的除法取整方向
// 如果当前编译器的除法取整方向是趋于0取整,返回TRUE
// 如果当前编译器的除法取整方向是趋于无穷小取整,返回FALSE
//--------------------------------------------------------------
static int IsDivisionTruncateToward0( void )
{
	return (-8/5)==-1;
}

//--------------------------------------------------------------
// Arith_div( x, y )返回x/y的商
// 当x, y符号相同时,商趋于0取整
// 当x, y符号不同时,商趋于无穷小取整
//--------------------------------------------------------------
extern int Arith_div( int x, int y )
{
	if( IsDivisionTruncateToward0()
		&& (x<0)!=(y<0) // 判断两个有符号数的符号是否不同,符号不同,为TRUE;符号相同,为FALSE
		&& x%y!=0 )
	{
		return x/y - 1;
	}
	else
	{
		return x/y;
	}
}

//--------------------------------------------------------------
// Arith_mod( x, y )返回x/y的余数
// ANSI C认为,只要x/y合法,则(x/y)*y+x%y一定等于x,基于这一结论
// Arith_mod( x, y )被定义为 x-y*Arith_div(x,y)
//--------------------------------------------------------------
extern int Arith_mod( int x, int y )
{
	return x - y*Arith_div(x, y); // 按定义实现Arith_mod(x, y)
}

#endif

⌨️ 快捷键说明

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