1樓:匿名使用者
離散數學沒學好吧
1.串的概念,乙個數字是一位,若干位組成串,比如0011是4位串2.int一般來說指的是32位os上的,它是32位的串3.
資料的格式,把2進製串當成2進製的值,所以無符號int的範圍是0~11111...(32個1,約42億9千7百萬)
4.有符號資料的資料格式,乙個數的負數資料表示是其的2補碼,所以有符號int的0~01111...(乙個0和31個1)表示和無符號int是一樣的正數,但是1000...
(乙個1和31個0)表示-01111...(乙個0和31個1),並且每加1,表示的負數數值就大1,這樣不管是有符號還是無符號都遵循一樣的運算規則
5.資料和其表示的概念是分開的,這個自己慢慢理解吧
2樓:
32位是指32位 0/1 ,能表示的數共有 2^32 個。
對於有符號型別,最高位0表示正數,1表示負數,因此範圍是 [-2^31, 2^31-1] 。
(最好看看「補碼」的解釋)
16次方是老機器了,16位機上 int 是2個位元組。
3樓:匿名使用者
1 不同環境下int資料的佔用位元組不一樣 有十六位,也有32位
2 當數有正負是 需要記錄這個數是正還是負,統一標準是首位標記,為正或為0首位為0,為負首位為1,除去首位還有 15位或者 31位,它們分別能表示 2的15次方個數 和2的31次方個數。
由於首位為0時包括 0,故正數數量比上述值少1。
4樓:救贖削腎客
分沒問題
乙個二進位制位可以表示為0 或者1,就是有兩種變化2個二進位制位可以有00 .01.10.11四種變化、2的2次方。
但是00表示為0,,01表示為1,10表示為2,11表示為3,所以最大的只有3,2的2次方減一
*************************===我們最常用的是十進位制。
0-9、大於9的話就有兩位了變成了10.這裡意思和2進製是一樣的一位十進位制最多表示 10-1也就是9
兩位十進位制最大也只能表示99,也就是10的2次方減一,不知道這麼說你懂了沒?
c語言中整型資料的取值範圍是怎麼確定的???
5樓:紫荊
這個你要明白整型在計算機中的儲存原理--補碼形式儲存,舉乙個類吧,short 所佔位數是16位,即
其中要說明的是最大整數 (0111111111111111)計算方法
0111111111111111 即相當於16進製制的7fff,轉換為10進製後是 32767
最大負數:1000000000000000,由於最高位是1,判斷為負數,用求補碼的原理,按位求反+1
即 反碼 0111111111111111 補碼 100000000000000 轉換為10進製 32768 補回符號
-32768
其它的同樣計算
6樓:匿名使用者
對於無符號數,比較簡單,根據佔用的位數可以直接計算:
unsigned short 16位 0~2的16次方-1(即65535)
unsigned int 16位 0~2的16次方-1(即65535)
unsigned long 32位 0~2的32次方-1(即4294967295)
對於有符號數,由於符號位佔用一位,並且負數要用補碼表示
以8位資料為例:2進製的11111111表示-1,10000000表示-128,所以負數範圍-128~-1;2進製00000000表示0,01111111表示127,所以正數範圍0~127。合起來就是-128~127,找一下規律發現是- 2的(8-1)次方~2的(8-1)次方-1,那麼就可以得到任何位數的範圍:
short 16位 - 2的(16-1)次方~2的(16-1)次方-1(即-32768~32767)
int 16位 - 2的(16-1)次方~2的(16-1)次方-1(即-32768~32767)
long 32位 - 2的(32-1)次方~2的(32-1)次方-1(即-2147483648~2147483648)
7樓:青春之塔
看儲存空間和表示形式啊,補碼還是原碼。
c語言中,浮點型的數值範圍是如何算出來的?
8樓:金色潛鳥
浮點型數的2進製表達方法 ieee 754 有詳細規定,各編譯器參照此規定執行。
例如,符號位,指數符號位,指數字,尾數字 各幾位,如何表達,nan(不是乙個數字叫nan)如何表達, 無窮(infinity) 如何表達,正0負0如何表達,還有 denormalized 如何表達,normalized 如何表達。很繁瑣。
自己用的編譯器規定,可以見編譯器帶的標頭檔案 float.h 和 limits.h
例如:#define ldbl_mant_dig 64
#define ldbl_max 1.189731495357231765e+4932l
#define ldbl_max_10_exp 4932
#define ldbl_min 3.3621031431120935063e-4932l
。。。。
9樓:匿名使用者
二進位制……………………
c語言中關於變數的取值範圍是怎樣計算出來的 5
10樓:匿名使用者
對於每個資料型別,系統分配給他固定大小的記憶體。
例如 int 型變數,系統固定分配給它4個位元組的記憶體,1個位元組是8位,也就是乙個int型變數的取值範圍是 2的32次方這麼大。
11樓:木子思曰
關鍵是看你定義的變數是什麼型別的
char 的是8位 也就是0-255
有符號的char 也是8位 -127-+127int 是16位 0-65535==
12樓:匿名使用者
float型和整型、字元的儲存方式是不一樣的整型和字元型 是按照二進位制位整數的方式儲存的而浮點型儲存的時候 分別儲存的是 尾數 和指數 以及尾數和指數的符號位 所以float型分配的4個位元組中有2個符號位 其他的資料位 分配給尾數和指數了 而不保留底數
尾數是按照科學計數法表示規範化形式
13樓:鈍角111度
按二進位制位數算出來的,比如8位的變數,取值範圍為2的八次方,0到128,如果是有符號的就是負64到正64,如果是16位的,取值範圍是2的16次方,0到65536,如果是有符號的,從負32768到正32768依次類推,2的32次方,等等。
14樓:匿名使用者
比如16位 ;有正負的; 就是2的-15次方 到 (2的15次方)-1 ;因為有0
c語言中怎麼計算乙個型別的取值範圍?如 char 用程式算
15樓:匿名使用者
c語言中char型別佔乙個位元組,屬於有符號數,按補碼進行資料存放。
如果用程式,來獲取取值範圍,可以設定兩個變數來儲存最大值和最小值,另設乙個unsigned char型變數,從乙個位元組的0(00000000)開始累加,直到變成255(11111111),統計其中的最大和最小值。
#include
int main()
return 0;
}執行結果:
min=-128 max=127
16樓:小神秘闖闖
首先確定位元組,然後確定位,有符號的就是-2的位次方到2的位次方–1,有符號的char是8位元組,它的取值範圍就是-2的7次方到2的7次方再減一
17樓:絕地
根據char的取值範圍和unsigned char的取值範圍的位數,如char和unsigned char都是8位,char型最高位是符號位,1代表為負數,所以為-2^7-1~~+2^7-1 即-128~+127 ,而unsigned char為2^8-1=256
即0~255
18樓:
char是乙個位元組也就是8位二進位制數字,所以乙個char的取值範圍是0-255
基本上都是這樣計算,就是查詢各個型別的位數。
C語言相關數問題,C語言相關數問題
include int main int temp,n,number 90 key printf 請輸 入這組數字的個數 scanf d n printf n請輸入這組數字,每行乙個 n for temp 0 temp相關數 scanf d key printf n相關數為 n for temp 0...
資料結構c語言描述,資料結構(C語言描述)
include include include define datatype int define maxsize 1000 typedef struct nodebitreenode datatype bt maxsize bitreenode buildbtree datatype bt,in...
c語言中,怎麼判斷常量是否合法,判斷C語言數值常量是否合法 為什麼不合法?
整型分字首 0 0x 和字尾 u l 每種進製中用的數字不同 浮點數字尾f l,指數表示注意是否在範圍內 字元與字串主要注意轉義字元後面是否合法 a 整數中不允許出現逗號 b 科學計數法表示1.5乘以10的2.0次方,由於科學計數法指數部分只能是整數。c 號是轉義符號後面要跟其他符號來表示具體字元,...