日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c++中 int, long long, double 等数据类型的长度及范围整理

發布時間:2023/12/2 c/c++ 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 等数据类型的长度及范围整理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。