在c中定義時int和double有何區別

2021-03-07 06:28:01 字數 4859 閱讀 2451

1樓:大野瘦子

1、型別不同

int 和 double 雖然都是基本資料型別,但 int 是整形, double 是浮點型。

2、在計算中的儲存方式不同

int在32位計算機中佔4個位元組,這4個位元組的在記憶體中存放的順序為低位元組存在低地址,高位元組存在高地址。

double是64位的,在儲存方式上都是遵從ieee的規範,其遵從的是 ieee r64.53。

c\c++中int、double等資料型別範圍的理解

例項**:

short sia = -32760;

short sib = (-32760 + 32768) % 65536 - 32768;

printf("not overflow\n");

printf("sia = %hd\n", sia);

printf("sib = %hd\n", sib);

sia = -32769;

sib = (-32769 + 32768) % 65536 - 32768;

printf("\noverflow\n");

printf("sia = %hd\n", sia);

printf("sib = %hd\n", sib);

sia = 32768;

sib = (32768 + 32768) % 65536 - 32768;

printf("\noverflow\n");

printf("sia = %hd\n", sia);

printf("sib = %hd\n", sib);

執行結果:

說明:1、在賦值操作時,如sia = -32769,-32769是先作為一個常量值存放在記憶體中,這個數值是沒有越界的概念的,就是二進位制值,只是在賦值操作時才進行了對應的資料轉換;

2、從執行結果可見,該處理機制對資料溢位和不溢位得到的結果都是適用的;

3、聯想資料閉環迴圈,如程式中32768,超過short型上限,其溢位一個數,作為一個資料閉環,則直接跳轉到了-32768,也就是short型下限值。

2樓:匿名使用者

int 和 double 都是基本資料型別, int 是整形, double 是浮點型。

1.int 型變數佔用的儲存空間和機器字一樣大,即 32位系統中是 4個位元組; 64位系統中是 8個位元組;

而 double 型變數 一般佔用8位元組,double 型變數佔用的儲存空間不會小於 int 型變數。

2.double 型表示的值範圍要比 int 表示的值範圍大,且從 double 值轉換到 int 值,會進行四捨五入,從而有精度損失。

擴充套件資料

一整形1.整形有char、short、int、long、long long,這5個也預設為signed xx ;

規則:short至少16位;int至少和short一樣;long至少32位,且至少和int一樣長;long long至少64位,且至少和long一樣長。

其中,後面4個都有無符號變體。unsigned short、unsigned int、unsigned long、unsigned long long.

注意,unsigned本身是unsigned int的縮寫。

可以看到,在32位和64位計算機上,對於整形唯一不同的就是int和指標的大小,其中32位計算機上int佔2位元組,64位上佔4位元組。指標大小和int大小相同。

2.wchar_t

char是8位字元型別,最多隻能包含256種字元,許多外文字符集所含的字元數目超過256個,char型無法表示。

wchar_t資料型別一般為16位或32位.

總之,wchar_t所能表示的字元數遠超char型。

標準c++中的wprintf()函式以及iostream類庫中的類和物件能提供wchar_t寬字元型別的相關操作。

3.++11新增型別:char16_t和char32_t

char16_t:16位無符號->字首u表示

char32_t:32位無符號->字首u表示

二、浮點型

浮點有3個,float、double、long double

規則:float至少4位元組;double至少6位元組,且不少於float;long double至少和double一樣多。

通常float32位,double64位,long double80、96或128位。我在vs2013上測到long double位64位。

參考資料

3樓:小澈

在c++中,int和double有以下幾個區別:

1、型別區別:

int是定義的整型資料,如int a 則a的值只能是整型,比如a=3。

double雙精度浮點數,就是有小數點的數。

2、在計算中的儲存方式:

int在32位計算機中佔4個位元組,這4個位元組的在記憶體中存放的順序為低位元組存在低地址,高位元組存在高地址。

double是64位的,在儲存方式上都是遵從ieee的規範,其遵從的是 ieee r64.53。

在記憶體中的儲存主要分成三部分,分別是:

符號位(sign):0代表正數,1代表負數

指數位(exponent):用於儲存科學計數法中的指數部分,並且採用移位儲存方式

尾數位(mantissa):用於儲存尾數部分

3、表達範圍:

int:在32/64位系統中都是32位,取值範圍為-2147483648~+2147483647,無符號情況下表示為0~4294967295。

double:有效數字為15-16,數值範圍為-1.7*10(-308)~1.7*10(308);

4樓:匿名使用者

int是一種型別——整數型別,例如:1,2,3,~~~

double也是一種型別——雙精度浮點數型別,例如:1.203156

5樓:沒有響應

int是整數 double是浮點數也就是有小數點的書

6樓:匿名使用者

int代表只能是整數,double是雙精度浮點數u,也就是小數

7樓:

定義時為int分配4個位元組儲存整數(32位),8個位元組給double儲存實數

c++中,int,char,double,這三個宣告的用法有何區別?如何正確選擇使用?

8樓:匿名使用者

char 是指字元型別,佔一個位元組內

存空間int 是指整型資料,佔四個位元組記憶體內空間double是指雙精度浮點

容型資料,佔八位元組記憶體空間

在程式設計中,根據使用的資料要求進行變數定義,選擇合適的變數型別,如:

char choice ; //定義一個字元cout << "input a choice (0-9):" ;

cin >> choice ; //這裡要求輸入一個字元0-9,所以,定義成char型別較好。 當然也可以定義成int型別,如:

int choice ;

cout << "input a choice (0-9):" ;

cin >> choice ;

int age ; //年齡當然用整型變數合適int n;

如果需要用到小數,就使用double,如:

double money;

double distance ; //計算兩點間的距離

9樓:匿名使用者

宣告方法bai相同,只是du每一個型別都有自己表達的數zhi據dao範圍

int 只能表示整回數

char 表示字元

double表示浮點數,即

答帶小數點的數

在輸入的時候使用不同的標識,比如int 用scanf("%d", &a);char用%c,char陣列用%s,double用%lf

c++ double和int有什麼不一樣。(不理解)

10樓:匿名使用者

int 和 double 都是基本bai資料型別, int 是整du形, double 是浮點型。

一般zhi來說 , int 型變數dao佔用的儲存空間和機器字專一樣大,即屬 32位系統中是 4個位元組; 64位系統中是 8個位元組; 而 double 型變數 一般佔用8位元組,double 型變數佔用的儲存空間不會小於 int 型變數。

double 型表示的值範圍要比 int 表示的值範圍大,且從 double 值轉換到 int 值,會進行四捨五入,從而有精度損失。

11樓:水為花逝

int是整數,double是實數,兩者的實現機制不同

c++裡 double& 和double有什麼區別

12樓:匿名使用者

前者是引用!

比如函式返回一個引用,可以用在賦值運算子左邊!

double & sun(double x, double y);

13樓:匿名使用者

引用的意思呢就是說返回變數的地址而非變數本身。比如一樓的返回值就是一個double型別的引用,這樣子函式結束之後儲存返回值的記憶體單元不會被銷燬,保留了它的地址。

例如下面這個例子:

int a=1,b;

b=a;

b++;

這個例子裡執行完之後a為1,而b為2。

但這個例子:

int a=1;

int *b;

b=&a;//指標b獲取了a的地址

(*b)++;

a和b的值都會變為2

14樓:匿名使用者

前者是引用! 可對原變數直接操作

15樓:匿名使用者

double&定義引用

在C 中int和long有什麼區別,自動型別轉化為什麼從int轉換成long

都是整bai數型別,以前老的編譯器duint 16位 long 32位,現在zhi好多編譯器int 和long一樣。dao自動轉內 換是內建規則,容即隱式轉換,因為int 轉long不會丟失資料,但如果long轉成int,有些編譯器可能位寬不一樣,會丟失資料。在c 中怎麼把long轉換成int 強制...

在java中定義了int型別要輸入的變數如何判斷

不是很明白你的意思,如果你用控制檯輸入 scanner sca new scanner system.in int i sca.nextint 不就已經限制死型別了嗎?trycatch exception e if s instanceof string 這樣吧,用最笨的方法,不過也是挺基礎的方法i...

在c中如何使用和定義變數,c 中可以用介面直接定義一個變數嗎?為什麼?

我補充說點兒實際的吧!例項變數在類的內部定義,不屬於方法,會自動初始化。靜態的例項變數可以在類中任何一個方法 包括靜態的和非靜態的 中訪問,非靜態的例項變數可以在類中任何非靜態的方法中訪問。區域性變數是指在方法內部定義的變數,包括形式引數。具有一定的作用範圍,即外層的大括號,出了大括號便不能使用。靜...