c++中 int, long long, double 等数据类型的长度及范围整理
先附上一個比較直觀的表,長度表示字節:
?
?byte: 字節 ?bit: 位
1. 短整型short:
? ? 所占內存大小:2byte=16bit;
? ? 所能表示范圍:-32768~32767;(即-2^15~2^15-1)
2. 整型int:
? ? 所占內存大小:4byte=32bit;
? ? 所能表示范圍:-2147483648~2147483647;(即-2^31~2^31-1)
? ? unsigned: ?
? ? 所占內存大小:4byte=32bit;
? ? 所能表示范圍:0~4294967295;(即0~2^32-1)
3. 長整型long:
? ? 所占內存大小:4byte=32bit;
? ? 所能表示范圍:-2147483648~2147483647;(即-2^31~2^31-1)
? ? unsigned long: ?
? ? 所占內存大小:4byte=32bit;
? ? 所能表示范圍:0~4294967295;(即0~2^32-1)
4. long long:
? ? 所占內存大小:8byte=64bit;
? ? 所能表示范圍:-9223372036854775808~9223372036854775807;(即-2^63~2^63-1)
? ? unsigned long: ?
? ? 所占內存大小:8byte=64bit;
? ? 所能表示范圍:0~1844674407370955161;(即0~2^64-1)
? ? 注:上面所說的全部是有符號型的,short,int,long, long long都默認為有符號型,其 中long和int都占4個字節的空間大小,他們有什么區別呢?
? ? ? ? ? ?16位操作系統:long:4字節,int:2字節
? ? ? ? ? ?32位操作系統:long:4字節,int:4字節
? ? ? ? ? ?64位操作系統:long:8字節,int:4字節
? ? int型在不同位數操作系統中所占用的字節數不同,如果想編寫可移植性好的程序,早年流行16位和32位操作系統時最好用long修飾int型,現在流行32位和64位操作系統,用int就挺多了。當然這些都看你怎么去理解它了,畢竟它 們在不同操作系統所占字節數不固定,所以各自都有其適用之處,不可定論其好壞。
? ? 下面是對它 們的有科學依據的規定:
? ? C語言規定:無論什么平臺都要保證long型占用字節數不小于int型, int型不小于short型。
5. 字符型char:
? ? 所占內存大小:1byte=8bit;
? ? 所能表示范圍:不確定!!!!;
? ? unsigned char:
? ? 所占內存大小:1byte=8bit;
? ? 所能表示范圍:0~255;(0~2^8-1)
? ? singned char: ?
? ? 所占內存大小:1byte=8bit;
? ? 所能表示范圍:-128~127;(-2^7~2^7-1)
? ? char的默認類型不確定有可能是unsigned,也有可能是signed,主要更具編譯器而定,可以自己測試一下編譯器的默認char的符號類型。
6. 布爾類型bool:
? ? 所占內存大小:1byte=8bit;
? ? 所能表示的范圍:只能取兩個值false或者true;所以最小值就是:0, 最大值:1.
7. 單精度float: ? ?
? ? 所占內存大小:4byte=32bit;
? ? 所能表示的范圍:(1.17549e-038)~(3.40282e+038);
? ? 注意:浮點數在 內存中都是按科學計數法來存儲的,浮點數的精度是由尾數的位數決定的,大家記住即可不必深究;
8. 雙精度double:
? ?所占內存大小:8byte=64bit;
? ?所能表示的范圍:(2.22507e-308)~(1.79769e+308);
? ? 注:如何區分和使用這兩個浮點類型呢,首先float和double的精度不同, float保留到小數點后面7位,而double保留到小數點后面16位,float能保證6 位有效數字,而double能保證15位有效數字,如果在不追求精度的的情況下當然用 float比較好,節省內存,如果需要很高的精度的情況下,最好還是用 double,平時我們定義浮點型變量一般都用double,畢竟精度高,一般精度 的損失是不能忽略的。
9. 字符串string:由于string在c++中屬于類類型,不是基本數據類型,類不能計算其在內 存中所占大小,非要用sizeof(string)來算的話,一般算出來的結果是 sizeof(string)=4byte,如果string字符串內容很多,很明顯就不是其 真實大小,string類里面有計算其字節大小的函數如:size(),length()。
?
總結
以上是生活随笔為你收集整理的c++中 int, long long, double 等数据类型的长度及范围整理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ssr安卓版下载(ssr安卓版)
- 下一篇: python 数据处理----读取txt