#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "VTimetest.h"
int TIMES = 9999;
int main(int argc, char* argv[])
{
int j;
scanf( "%d", &j );
Timetest t;
t.StartTime();
for ( int i = 1; i < TIMES; ++i )
{
j = j / i;
}
t.StopTime();
return 0;
}
=========================================================
测试环境:ARM-Linux
横向比较:无符号数的除法效率比有符号数高,差不多高15%左右。而乘法、加减法操作则一致。
纵向比较:除法的效率较低(因为处理器没有除法指令,要由库函数完成),加减效率最高,乘法稍低,比例大概是:3~3.5:1:1.1。
有符号数和无符号数混和运算时,+-*一律转换为有符号数再进行运算,而/则转换为无符号数再进行运算(VC编译器的结果,GCC也是如此)。