程 式在執行的過程中,需要運算許多的資訊,也需要儲存許多的資訊,資訊是儲存在記憶體空間中,由於資料的型態各不相同,在儲存時所需要的容量不一,不同的 資料必須要配給不同的空間大小來儲存,因而有了「資料型態」(Data type)的規範。
C++中基本的資料型態主要區分為「整數」(Integer)、「浮點數」(Float)、「字元」(Character),而這幾種還可以細分,如下所 示:
整數
用 來表示整數值,可以區分為short、int、與long,可容納的大小各不相同,short的長度為半個word,int表示一個word,而long 可能是一個或兩個word,在32位元機器上int與long的長度通常是相同的,型態的長度越長,表示可表示的整數值範圍越大。
浮點數
用 來表示小數值,可以區分為float、double與long double,float的長度為一個word,double的長度為二個word,long double長度為3或4個word。
字元
用 來儲存字元,長度為1個位元組,其字元編碼主要依ASCII表而來,由於字元在記憶體中所佔有的空間較小,所以它也可以用來儲存較小範圍的整數。
以上的資料型態在記憶體中所佔有的大小依平台系統而有所差異,word的大小取決於機器,在32位元機器上通常一個word是4個位元組,如果想要知道這 些資 料型態在您所使用的平台上,所佔有的記憶體空間有多少,最好的作法是使用sizeof()運算子,它可以告訴您確實的記憶體大小,下面這個程式是個簡單的示範(64 bit):
Data type (bytes)
int 4
long 8
float 4
double 8
char 1
參考資料
http://en.wikipedia.org/wiki/C_data_types
http://en.wikipedia.org/wiki/Integer_(computer_science)
http://caterpillar.onlyfun.net/Gossip/CppGossip/DataType.html
C code 與 assembly output 交叉出現
2011年6月9日 星期四
2011年5月31日 星期二
C floor
a=0.3/0.0125;
printf("a1=%f\n", a);
printf("floor(a1)=%g\n", floorf(a));
a=floorf(0.3/0.0125);
printf("a1=%f\n", a);
printf("%f\n", floor((0.3/0.0125)));
a1=24.000000
floor(a1)=24
a1=24.000000
23.000000
在C 和Fortran 得到的結果不一樣, 原來在C 語言中要用floorf!! XD
補充
printf("a1=%f\n", a);
printf("floor(a1)=%g\n", floorf(a));
a=floorf(0.3/0.0125);
printf("a1=%f\n", a);
printf("%f\n", floor((0.3/0.0125)));
a1=24.000000
floor(a1)=24
a1=24.000000
23.000000
在C 和Fortran 得到的結果不一樣, 原來在C 語言中要用floorf!! XD
補充
ceil(x) 返回不小于x的最小整数值 (天花板)
floor(x) 返回不大于x的最大整数值 (地板)
round(x) 返回x的四舍五入整数值
2011年5月18日 星期三
HPCC notes
修改CCFLAGS,如果用mpich,是$(HPL_DEFS) -fomit-frame-pointer -03-funroll-loops -W –Wall,
用openmpi就要修改成 $(HPL_DEFS) -03
HPL 產生器
http://www.advancedclustering.com/faq/how-do-i-tune-my-hpldat-file.html
HPCC inf 說明
http://onetfbao.spaces.live.com/blog/cns!393E9866CAB6E396!367.entry
http://www.orientsky.com.cn/_new/Printpage.asp?ID=1496
http://onemansjourneyintolinux.blogspot.com/2009/01/hpl-tuning.html
如何做Linpack测试及性能优化
曹振南
http://www.netlib.org/benchmark/hpl/faqs.html
用openmpi就要修改成 $(HPL_DEFS) -03
HPL 產生器
http://www.advancedclustering.com/faq/how-do-i-tune-my-hpldat-file.html
HPCC inf 說明
http://onetfbao.spaces.live.com/blog/cns!393E9866CAB6E396!367.entry
http://www.orientsky.com.cn/_new/Printpage.asp?ID=1496
http://onemansjourneyintolinux.blogspot.com/2009/01/hpl-tuning.html
如何做Linpack测试及性能优化
曹振南
http://www.netlib.org/benchmark/hpl/faqs.html
2011年5月4日 星期三
global variable in python
在Python 中修改到全域變數時要宣告global
globvar = 0
def set_globvar_to_one():
global globvar # Needed to modify global copy of globvar
globvar = 1
def print_globvar():
print globvar # No need for global declaration to read value of globvar
set_globvar_to_one()
print_globvar() # Prints 1
訂閱:
文章 (Atom)