divtest.c

来自「The GRLIB IP Library is an integrated se」· C语言 代码 · 共 50 行

C
50
字号
struct divcase {	int	num;	int	denom;	int	res;};volatile struct divcase diva[] = {	{  2,  3, 0}, { 3, -2, -1}, {  2, -3, 0}, {  0,  1, 0}, {  0, -1, 0}, {  1, -1, -1},	{ -1,  1, -1}, { -2,  3, 0}, { -2, -3, 0}, {9, 7, 1}, 	{ -9, 2, -4}, {-8, 2, -4}, {-8, -4, 2}, {8, -4, -2}, {-8, -8 , 1},	{-8, -9, 0}, {11, 2, 5}, {47, 2, 23}, 	{ 12345,  679, 12345/679}, { -63636,  77, -63636/77},	{ 12345,  -679, -12345/679}, { -63636,  -77, 63636/77},	{ 145,  -6079, 0}, { -636,  -77777, 0}, { 63226,  7227777, 0},	{  0,  0, 0} };struct udivcase {	unsigned int	num;	unsigned int	denom;	unsigned int	res;};volatile struct udivcase udiva[] = {	{  2,  3, 0}, {  0,  1, 0}, { 0xfffffffe,  3, 0xfffffffe/3},	{ 0xfffffffe,  3, 0xfffffffe/3}, { 0x700ffffe,  7, 0x700ffffe/7},	{  0,  0, 0} };divtest(){	int i = 0;	/* skip test if divider disabled */	if (!((get_asr17() >> 8) & 1)) return(0);		//	report(DIV_TEST);	while (diva[i].denom != 0) {	    if ((diva[i].num / diva[i].denom) != diva[i].res) return(1);	    i++;	}	i = 0;	while (udiva[i].denom != 0) {	    if ((udiva[i].num / udiva[i].denom) != udiva[i].res) return(2);	    i++;	}	return(0);}

⌨️ 快捷键说明

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