Ⅰ C++中,64位計算機整型,短整型,長整型分別占幾個位元組
123456789101112131415#include <iostream> int main(void){ int a = 0; short b = 0; long int c = 0; std::cout<< sizeof(a)<<std::endl<< sizeof(b)<<std::endl<< sizeof(c)<<std::endl; return 0;}
4
2
4(根據系統及編譯器的不同會有差別)
雖然這是基礎,但自己想辦法解決的能力也是很重要的
Ⅱ 整型、短整型、長整型的區別是什麼
1、整型變數可以分為以下4類:
(1)短整型,類型關鍵字為short[int]。
(2)基本整型,類型關鍵字為int。
(3)長整型,類型關鍵字為long[int]。
(4)無符號整型,類型關鍵字為unsigned[int]或unsignedshort或unsignedlong。
unsigned[int]表示無符號基本整型;
unsignedshort表示無符號短整型;
unsignedlong表示無符號長整型。
Ⅲ 整型占幾個位元組范圍是多少
長整型佔4位元組,范圍從0到4294967295,或-2147483648到2147483647,短整型占兩個位元組,范圍從0到65535或從-32768到32767。
Ⅳ 在C語言中各種數據類型各佔多少位
(一)32位平台:
分為有符號型與無符號型。
有符號型:
short 在內存中占兩個位元組,范圍為-2^15~(2^15-1)
int 在內存中佔四個位元組,范圍為-2^31~(2^31-1)
long在內存中佔四個位元組,范圍為-2^31~2^31-1
無符號型:最高位不表示符號位
unsigned short 在內存中占兩個位元組,范圍為0~2^16-1
unsigned int 在內存中佔四個位元組,范圍為0~2^32-1
unsigned long在內存中佔四個位元組,范圍為0~2^32-1
實型變數:
分單精度 float 和雙精度 double 兩種形式:
float:佔四個位元組,提供7~8位有效數字。
double: 佔八個位元組,提供15~16位有效數字。
(二)16位平台:
1)整型(基本型):類型說明符為int,在內存中佔2個位元組。
2)短整型:類型說明符為short int或short。所佔位元組和取值范圍均與整型(基本型)相同。
3)長整型:類型說明符為long int或long,在內存中佔4個位元組。
無符號型:類型說明符為unsigned。
無符號型又可與上述三種類型匹配而構成:
各種無符號類型量所佔的內存空間位元組數與相應的有符號類型量相同。但由於省去了符號位,故不能表示負數。
實型變數:
分為單精度(float型)、雙精度(double型)和長雙精度(long double型)三類。
單精度型佔4個位元組(32位)內存空間,其數值范圍為3.4E-38~3.4E+38,只能提供七位有效數字。
雙精度型佔8 個位元組(64位)內存空間,其數值范圍為1.7E-308~1.7E+308,可提供16位有效數字。
長雙精度型16 個位元組(128位)內存空間,可提供18-19位有效數字。
Ⅳ 數據類型占的位數
由於一個位元組是8位,為了保持最大兼容性,所以數據類型佔用位數也是取8的倍數:8、16、32、64等
你最後說的那個16位32位64位,是指CPU一次能夠處理的最大位數,也就是說,在64位系統中,CPU可以一次性處理64位的數據(也就是8個位元組)。指定的數據類型所佔的位數是不變的。但是在64位系統由於可以一次性處理64位的數據,因此它存在長達64位的超長整數類型,這在32位及以下的系統中是不存在的(32位系統也是可以處理64位數據的,但需要經過特殊的措施,效率非常低下)
Ⅵ 整型數據有幾種類型分別是什麼 分別佔多長位元組取值范圍分別有什麼不同
1.普通整形。就是int,佔用四個位元組
2.無符號短整型。unsigned short,佔用兩個位元組。
2.短整型。short int,佔用兩個位元組
3.長整型。long int和int實際上是一樣的。
此處摘錄。既然long int與int相同,那麼為什麼還有long int這種尷尬的類型呢?
原因是早期的C編譯器定義了long int佔用4個位元組,int佔用2個位元組,long int是名副其實的長整型。在ANSI C的標准中,對長整型的定義也是long int應該至少和int一樣長,而不是long int 一定要比int佔用存儲位元組長。
原文鏈接:https://blog.csdn.net/CV_Jason/article/details/85244813
4.長整形。 long long,佔用八個位元組。
5.無符號長整形。unsigned long,佔用八個位元組。
5.字元。char,佔用一個位元組。
6.無符號字元。unsigned char,佔用一個位元組。
Ⅶ c語言整型數據int占幾個位元組
不同的編譯器,占據的位元組也不同,具體如下表所示:
編譯器可以根據自身硬體來選擇合適的大小,但是需要滿足約束:short和int型至少為16位,long型至少為32位,並且short型長度不能超過int型,而int型不能超過long型。這即是說各個類型的變數長度是由編譯器來決定的,而當前主流的編譯器中一般是32位機器和64位機器中int型都是4個位元組。
(7)短整型數據多少位擴展閱讀:
在使用不同編譯器時候需要注意他們的數據類型差異,int如此其他數據類型也應當注意,因為並沒用人規定某種數據類型應該占據多少位元組,以及他所表示的數據是有符號還是無符號,即便有人規定這些內容那麼編譯器是否願意按規定來實現誰也說不準。
Ⅷ 整型數據是16位
在說明的時候不可能吧16個0權寫出來,告訴你關鍵的就可以了,所以沒有寫全,其實前面是有10個0的
Ⅸ C語言中整型數據的有效位數是多少
1、從二進制的角度來看整數的有效位數,要從整數的編碼說起,有符號整數編碼包括原碼、反碼和補碼三種常規編碼方式,原碼表示即最高位為符號位,0表示正數,1表示負數,如果以8位二進制位來表示,符號位要佔1位,所以有效位數7位。
要獲取整型類型在當前編譯環境中所佔的位數,可以使用sizeof運算符。
#include<stdio.h>
intmain()
{
printf("sizeofint:%d
",sizeof(int));
return0;
}
2、如果要計算一個整數中的有效位數,可以不斷的整除10求出來。如下代碼:
#include<stdio.h>
inthow_many_int(ints)
{
inti=0;
while(s!=0)
{s/=10;i++;}
returni;
}
intmain()
{
inttest;
do
{
printf("輸入整數:");
scanf("%d",&test);
printf("有%d位
",how_many_int(test));
}while(test!=~0);
return0;
}
說明:輸入數值超出int所表示的范圍,編譯器會對輸入數進行取模操作。輸出-1結束循環,退出程序。
Ⅹ 短整型為什麼最大值和最小值是那樣的
我給你說說:
短整型占兩個位元組,一個位元組8位,也就是16位。0000 0000 0000 0000 最低位是0位,最高位是15位。0--15正好是16位,明白嗎?
無符號數:這16位都表示數字,最大是:二進制:1111 1111 1111 1111 十六進制:FFFF
十進制是:65535;有許多人都糊塗,2的16是65536啊;不錯,但不是這個意思,它是指2個位元組共16位是指能表示65536個數,我們是說的是16位能表示的最大數是65535,從0到65535正好是65536個數,明白了嗎?比如一個4位數:0000 是0,1111是15,也就是說4位表示的最大數是15,不是2的4次方16,
有符號數:最高位是符號位,只能有15位表示數值,能表示32768個數,正數是0至32767這32768個數,負數是-1到-32768這32768個數,二進最高位是0表示正數,是1表示負數。
一般在計算機中,數是用補碼表示,無符號數的補碼就是原碼,比如:在計算機中存放的是1101 0010 1101 1000 的數值,直接用二進制轉化成十進制的方法算 是:53976
有符號數的補碼是原碼的反碼末位加1,就是對二進制數按位取反,末位再加1,就是有符號數的補碼。(補碼的補碼就是原碼,求這個補碼的原碼就是對補碼再進行求補碼)比如;還是上面二進制數1101 0010 1101 1000 ,但這是有符號數的補碼,我們必須先求出它的原碼 ,按位取反,符號位不變,也不參與二進制轉換十進制的計算:1010 1101 0010 0111 ,末位加1是:
1010 1101 0010 1000,十進制是:-11560;
再比如有符號數:1111 1111 1111 1111 先求原碼,符號位不變,是:1000 0000 0000 0000
末位加1,原碼是:1000 0000 0000 0001 所以十進制是-1;
至於機器的原碼(0為正,1為負)呵呵,就是這樣規定的啦。