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