1. 程式人生 > >囊括基本型別大小及範圍

囊括基本型別大小及範圍

轉載自: https://blog.csdn.net/love_x_you/article/details/42846993

一、基本型別的大小及範圍的總結(以下所講都是預設在32位作業系統下):

位元組: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)


注:上面所說的全部是有符號型的,short,int,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型。

4.字元型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的符號型別。

5.布林型別bool:所佔記憶體大小:1byte=8bit;

     所能表示的範圍:只能取兩個值false或者true;所以最小值就是:0,最大值:1.

6.單精度float:    所佔記憶體大小:4byte=32bit;

              所能表示的範圍:(1.17549e-038)~(3.40282e+038);//注意:浮點數在記憶體中都是按科學計數法來儲存的,浮點數的精度是由尾數的位數決定的,大家記住即可不   必深究;

7.雙精度double:所佔記憶體大小:8byte=32bit;

      所能表示的範圍:(2.22507e-308)~(1.79769e+308);

注:如何區分和使用這兩個浮點型別呢,首先float和double的精度不同,float保留到小數點後面7位,而double保留到小數點後面16位,float能保證6位有效數字,而double能保證15位有效數字,如果在不追求精度的的情況下當然用float比較好,節省記憶體,如果需要很高的精度的情況下,最好還是用double,平時我們定義浮點型變數一般都用double,畢竟精度高,一般精度的損失是不能忽略的。

8.字串string:由於string在c++中屬於類型別,不是基本資料型別,類不能計算其在記憶體中所佔大小,非要用sizeof(string)來算的話,一般算出來的結果是 sizeof(string)=4byte,       如果string字串內容很多,很明顯就不是其真實大小,string類裡面有計算其位元組大小的函式如:size(),length()。


相關推薦

囊括基本型別大小範圍

轉載自: https://blog.csdn.net/love_x_you/article/details/42846993一、基本型別的大小及範圍的總結(以下所講都是預設在32位作業系統下):位元組:byte;位:bit。1.短整型short:所佔記憶體大小:2byte=1

基本資料型別大小範圍

基本資料型別       遵循3個規則:   1.不同的機型只是int型別在變   2.int至少和short一樣長   3.long至少和int一樣長 notes:long是long int的縮寫 short 短整型 long 長整型 2的冪表 no

java最基本的四個資料型別大小範圍

byte b;//指定變數b為byte型別(最小值-128 最大值127)  1個位元組 一個常量,儲存 byte 型別可取的最大值,即 27-1。(127) 一個常量,儲存 byte 型別可取的

Python基本型別補充深淺拷貝

  1. 基礎資料型別補充         join()         "*".join("馬虎疼") # 馬*虎*疼 把傳遞進去的引數進行迭

java基本型別(數值範圍):浮點的底層表示定義,float計算快一些

Java八種基本型別: 六種數字型別(四個整數型,兩個浮點型), 一種字元型別, 一種布林型。 具體如下 1、整數:包括int,short,byte,long 2、浮點型:float,d

JAVA基本型別取值範圍

最近使用Netty與C++程式進行TCP/IP通訊,遇到一個解包和封包的問題。其中涉及到JAVA與C++資料型別的對應關係。於是蜻蜓點水的看了一個文章,感覺挺具體的於是直接轉過來 基本型別,或者叫做內建型別,是JAVA中不同於類的特殊型別。它們是我們程式設計中使用最頻繁的型

Linux基本資料型別大小——int,char,long int,long long int(/usr/include/limit.h檔案對Linux下資料型別的限制儲存位元組大小的說明)

 /* We don't have #include_next.   Define ANSI <limits.h> for standard 32-bit words.  */     /* These assume 8-bit 'char's, 16-bit 'short int's,   an

C語言基本資料型別對應位元組大小printf函式輸出格式

補充說明:4位元組:int(%d),unsigned=unsigned int(%u),long=long int(%ld),unsigned long(%lu),float(%f)8位元組:double(%lf),unsigned long long(%llu),long

typeof()用法JS基本型別

一,typeof方法用法 typeof 返回的是字串,有六種可能:"number"、"string"、"boolean"、"object"、"function"、"undefined" 事例:常用來判斷 // 1.校驗註冊時間 sRegDate = getItemValu

基本數據類型大小範圍

font notes nbsp 分享 mil not alt 基本數據 note 基本數據類型 遵循3個規則:   1.不同的機型只是int類型在變   2.int至少和short一樣長   3.long至少和int一樣長 notes:long是long in

判斷照片大小 型別

//判斷照片大小 function getPhotoSize(obj){ photoExt=obj.value.substr(obj.value.lastIndexOf(“.”)).toLowerCase();//獲得檔案字尾名 if(photoExt!=’.jpg’){ alert

MySQL資料型別範圍用法一覽表

一、MySQL的資料型別 主要包括五大類: 整數型別:BIT、BOOL、TINY INT、SMALL INT、MEDIUM INT、 INT、 BIG INT 浮點數型別:FLOAT、DOUBLE、DECIMAL 字串型別:CHAR、VARCHAR、TINY TE

python基本型別資料結構

基本型別的定義,和java不一樣,不用事先定義變數型別,只需定義變數名 //java int a=99; #python a=99,b="678",c=True 基本資料結構,與基本型別一樣,只需定義變數名,會自動識別 #list listTemp=[] #m

Scala入門到精通—— 第二節Scala基本型別操作、程式控制結構

本節主要內容 Scala基本型別 基本型別操作 Scala程式控制結構 Scala基本型別 Scala中的基本資料型別如下圖: (來源:Programming in Scala) 從上表中可以看出,Scala的基本資料型別與Java中的基本

mysql 各資料型別大小長度

數字型 型別 大小 範圍(有符號) 範圍(無符號) 用途 TINYINT 1 位元組 (-128,127) (0,255) 小整

mysql基本資料型別簡介舉例應用

一、數值型別整型可以指定是有符號的和無符號的,預設是有符號的。可以通過UNSIGNED來說明某個欄位是無符號的。我們看一下tinyint的用法:因為-129越界,所以插入失敗。我們再看一下無符號整型:越界:這裡我們看一個引數sql_mode,對它進行設定,我們就可以得到-1這

C語言的資料型別範圍

資料型別 序號 型別與描述 1 基本型別:它們是算術型別,包括兩種型別:整數型別和浮點型別。 2 列舉型別:它們也是算術型別,被用來定義在程式中只能賦予其一定的離散整數值的變數。 3 void 型別:型別說明

java基礎——基本資料型別大小

學習了下大神的總結:https://www.cnblogs.com/TTTTT/p/6541270.html以下記錄了下自己想學習的部分!Java語言提供了八種基本型別。六種數字型別(四個整數型(預設是int 型),兩個浮點型(預設是double 型)),一種字元型別,還有一

Java基本資料型別取值範圍,為什麼String 不是基本資料型別,char的取值範圍為什麼沒有負數

一、在JAVA中一共有八種基本資料型別,他們分別是 byte、short、int、long、float、double、char、boolean 整型 其中byte、short、int、long都是表示整數的,只不過他們的取值範圍不一樣 byte的取

Dev-C++下基本型別所佔位數和取值範圍

符號屬性     長度屬性     基本型     所佔位數     取值範圍       輸入符舉例      輸出符舉例 --            --          char         8         -2^7 ~ 2^7-1        %c