2007-12-16

整數型態的除法

對新手來說很重要的觀念!
請思考的程式碼印出結果,究竟會印出0.5或是0?

#include <stdio.h>
int main() {
  int a = 10 ;
  int b = 20 ;
  printf("%f\n", a/b) ;
  system("pause") ;
  return 0 ;
}
很多新手應該會選擇0.5吧!確實~以人類思考角度來看0.5應該是正確的,可是在C語言看來0才是正確解答。
在C語言中,除法分為整數除法浮點數除法
  • 整數除法
    電腦僅會算到整數值,至於小數(分數)部分直接省去,並且是無條件捨位。
  • 浮點數除法
    電腦會一路除下去,直到表示位數的最小位數,採用四捨五入。

那究竟什麼時候採用整數除法又什麼時候採用浮點數除法呢?當然不是看電腦心情隨機決定XD
端看除法兩邊的運算元來決定,如果除法的兩個運算子其中一個為浮點數型態(float或double)則電腦就會採用浮點數除法,否則就採用整數除法。上面的例子會採用整數除法,原因是變數a與b都是整數型態,因此採用整數除法。
接著再看以下範例,答案將會是0.666667
#include <stdio.h>
int main() {
  float a = 2 ;
  float b = 3 ;
  printf("%f\n", a/b) ;
  system("pause") ;
  return 0 ;
}

無俚頭的搞笑?!

2007-12-12

SystemC網站推薦

耍蠢...

剛在Ubuntu上設定SystemC的開發環境
configure一直出現下面警告
明明以前就遇過的問題~卻一直沒找到原因...
checking build system type... configure: error: cannot guess build type; you must specify one

後來才發現系統根本沒裝g++套件XD

逢甲圖書館校外Proxy設定

功能說明:
  在校外以HiNet、SeedNet要連線圖書館所訂購的電子資料庫時,應先進行代理伺服器的設定。

Proxy網址:
http://proxy.lib.fcu.edu.tw/proxy.pac

詳細設定說明請參考:
http://www.lib.fcu.edu.tw/eresources/er_outcampus_services.htm