[問題] 寫XOR比較效能,但CUP時間都是0
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
無
問題(Question):
寫XOR和System比效能,但算出的cpu時間都是0求解
餵入的資料(Input):
111.....11^000.....00
預期的正確結果(Expected Output):
應該會出現大於0毫秒
錯誤結果(Wrong Output):
0毫秒
程式碼(Code):(請善用置底文網頁, 記得排版)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
char XOR(char, char);
int main(void)
{
clock_t start_tick, end_tick;
long long elapsed;
char A[128], B[128],C[128];
int i;
for (i = 1; i < 128; i++)
{
A[i] = '0';
B[i] = '1';
}
start_tick = clock();
//---system XOR---
for (i = 1; i < 128; i++)
C[i] = A[i] ^ B[i];
end_tick = clock();
elapsed = end_tick - start_tick;
printf("System XOR using time:%f\n", elapsed);
//------------------------------------------------------------------------
start_tick = clock();
//---my XOR---
for (i = 1; i < 128; i++)
C[i] = XOR(A[i], B[i]);
end_tick = clock();
elapsed = end_tick - start_tick;
printf("My XOR using time:%f\n", elapsed);
system("pause");
return 0;
}
char XOR(char A, char B)
{
if (A == B)
return '0';
else
return '1';
}
補充說明(Supplement):
此程式為了比較我寫的XOR (不使用^) 跟直接用系統的XOR (使用^) ,在效能上有沒有差
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.41.4.182
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1440754340.A.F83.html
推 chigi: CUP
抱歉已修改 08/28 17:36
※ 編輯: mark182908 (114.41.4.182), 08/28/2015 17:57:44
※ 編輯: mark182908 (114.41.4.182), 08/28/2015 18:05:05
→
08/28 18:32, , 1F
08/28 18:32, 1F
了解但我查了一下C似乎最小時間單位是毫秒,請問大大有其他方法能到更精準嗎?謝謝
※ 編輯: mark182908 (114.41.4.182), 08/28/2015 19:42:13
→
08/28 19:43, , 2F
08/28 19:43, 2F
我的目的是為了比較我自己寫的XOR和系統呼叫的XOR在執行速度上差多少,不好意思沒寫清楚
※ 編輯: mark182908 (114.41.4.182), 08/28/2015 19:59:56
→
08/28 20:03, , 3F
08/28 20:03, 3F
→
08/28 20:03, , 4F
08/28 20:03, 4F
→
08/28 20:23, , 5F
08/28 20:23, 5F
→
08/28 20:44, , 6F
08/28 20:44, 6F
→
08/28 20:45, , 7F
08/28 20:45, 7F
了解謝謝各位,那請問XOR怎麼寫才會跟系統一樣快呢?
※ 編輯: mark182908 (114.41.4.182), 08/28/2015 20:53:22
→
08/28 20:56, , 8F
08/28 20:56, 8F
哈哈好像滿有道理的喔!
→
08/28 20:59, , 9F
08/28 20:59, 9F
那我懂了,但我還想請教x大若不使用系統的XOR,那我的方法算好嗎?因為做專題需要教授要我寫出最好的XOR,不好意思問題有點多...
※ 編輯: mark182908 (114.41.4.182), 08/28/2015 21:09:19
※ 編輯: mark182908 (114.41.4.182), 08/28/2015 21:10:16
推
08/28 21:39, , 10F
08/28 21:39, 10F
不知道是不是小弟我才疏學淺,但C好像沒有辦法用Binary,若有煩請大大解答謝謝
→
08/28 21:55, , 11F
08/28 21:55, 11F
不好意思用錯已改成double宣告
推
08/28 23:26, , 12F
08/28 23:26, 12F
謝謝大大醍醐灌頂
→
08/29 01:08, , 13F
08/29 01:08, 13F
我覺得可能是要試著寫到很接近的意思
→
08/29 02:25, , 14F
08/29 02:25, 14F
→
08/29 02:28, , 15F
08/29 02:28, 15F
已改成int謝謝提醒
→
08/29 02:32, , 16F
08/29 02:32, 16F
→
08/29 07:32, , 17F
08/29 07:32, 17F
→
08/29 07:35, , 18F
08/29 07:35, 18F
我有在想這個問題,但查了資料後找不到方法宣告成bit...
推
08/29 07:58, , 19F
08/29 07:58, 19F
→
08/29 08:00, , 20F
08/29 08:00, 20F
推
08/29 08:01, , 21F
08/29 08:01, 21F
→
08/29 08:02, , 22F
08/29 08:02, 22F
→
08/29 08:07, , 23F
08/29 08:07, 23F
→
08/29 08:07, , 24F
08/29 08:07, 24F
謝謝j大受益良多!!
→
08/29 08:31, , 25F
08/29 08:31, 25F
謝謝大家的指導小弟我受教了!!
※ 編輯: mark182908 (114.41.4.182), 08/30/2015 23:25:03