//取毫秒級時間精度(方法一):
vart1,t2:int64;
r1:int64;
begin
t1:=gettickcount;//獲取開始計數 windows api
sleep(1000);//執行要計時的**
t2:=gettickcount;//獲取結束計數值
r1:=t2-t1;//取得計時時間,單位毫秒(ms)
showmessage(inttostr(r1));
end;
//取毫秒級時間精度(方法二):
//use dateutils;//引用dateutils單位
vart1,t2:tdatetime;
r1:int64;
begin
t1:=now();//獲取開始計時時間
sleep(1000);//執行要計時的**
t2:=now();//獲取結束計時時間
r1:=secondsbetween(t2,t1);//取得計時時間,單位秒(s)
r1:=millisecondsbetween(t2,t1);//取得計時時間,單位毫秒(ms)
showmessage(inttostr(r1));
end;
//注:以上兩種方式經本人測試好像只能產生0.01秒的計時精度
//取系統級時間精度:
varc1:int64;
t1,t2:int64;
r1:double;
begin
queryperformancefrequency(c1);//windows api 返回計數頻率(intel86:1193180)(獲得系統的高效能頻率計數器在一毫秒內的震動次數)
queryperformancecounter(t1);//windows api 獲取開始計數值
sleep(1000);//執行要計時的**
queryperformancecounter(t2);//獲取結束計數值
r1:=(t2-t1)/c1;//取得計時時間,單位秒(s)
r1:=(t2-t1)/c1*1000;//取得計時時間,單位毫秒(ms)
r1:=(t2-t1)/c1*1000000;//取得計時時間,單位微秒
showmessage(floattostr(r1));
end;
高精度除法(高精度除以高精度)
先貼一個簡單的高精度除以單精度的 include include include using namespace std int main else ys ys 10 a i 0 while c i 0 i for int j i j 0 j printf d c j if ys printf d ...
高精度除高精度
演算法流程 第一步,讀入被除數 a 和 除數 b,判斷是否 a b,是則輸出 0 並結束演算法,否則令 answer 0 第二步,令餘數 remainder 0,令 i 從被除數最高位的下標開始 第三步,令 remainder remainder 10 a i 令 c 9 第四步,判斷是否 b c ...
高精度除以高精度
原 題 高精除以高精,求它們的商和餘數。演算法分析 高精除以高精是用減法模擬除法,對被除數的每一位都減去除數,一直減到當前位置的數字 包括前面的餘數 小於除數 由於每一位的數字小於10,所以對於每一位最多進行10次計算 代 碼 include include include using namesp...
高精度乘高精度
c a b a b均是高精度數 比如a 156,b 3,求a b 很容易知道答案是468,怎樣算的呢?首先讓3 6 18,然後向進一位,並且這位只保留8 讓3 5 進位1 16,然後向前進一位,並且這位只保留6 讓3 1 進位1 4,此時不向前進位,保留4 所以最終答案是468 通過這個例子我們再來...
高精度乘高精度
思路 用vector表示大整數,整數的低位存在陣列索引的低位 a x b c其中c的每一位 如第3位 是由a和b的相應位相乘累加,處理後得到 如 1 2,2 1 include using namespace std const int demical 10 void input string s,...