1樓:網友
對於整數型別態慶慎,首先看的是型別有幾位,能表示多少個不同的數。1位有0和1兩種不同狀態,也就是能表示2個數。2位有00 01 10 11四種不同的狀態,能表示4個數。
可以得出n位有2的n次方種不同狀態,能表示2的n次方個數。比如8位能表示256個數,16位能表示65536個數,..
對於無符號整數,範圍就是0~2^n - 1一共2^n個數。比如8位就是0~255。
對於帶符號整數,對於一般使用的補碼錶示法,是-2^(n-1)~2^(n-1)-1,還是2^n個數(也就是分了一半的狀態用來表示負數)。比如8位就是-128~127
對於浮點數,精度取決於有效數字位數。float有24位二進位的有效數字,換算成十進位24 * log2大約是,所以能精確表示7位10進位有效數字。(注意這件事差高譚浩強從來就沒搞明白過)
浮點數使用科學計數法,還有指數部分。帆敬float指數部分最大127,表示有效數字要乘以2^127,有效數字最大約等於2,所以表示的最大的數就是2的128次方,約等於,相對的最小的數也就是。
2樓:小呆瓜
在二進位和十進位之間轉化就可以了。
c語言中如何表示數值的範圍
3樓:路溥福香嵐
在c語言中用到數值範圍一般有如下兩種情況:
邏輯判斷中確定某數在某個範圍內。
比如判斷數c在[a,b]區間內可以寫作。
a<=c)
cb)使計算結果處於某個範圍內。
比如計算時間時,當前時間為n點,經過m小時後是幾點,由於時間僅取值在0點到23點,所以對數值範圍需要做約束。對於此可以用模除(%)來限定。
n+m)%24
其它關於數值範圍限定的問題,都可以從這兩種情況中延伸獲得。
比如下面兩個例題就是兩種情況的應用。
例一,輸入起始天的星期數(1-7),及天數n,計算經過n天后是星期幾。
分析,這個是第二種的典型應用,不過資料規模為1到7,與之前說的0起始情況判茄略有不同,可以通過轉換達到目的,**如下:
#include
int main()
int s,n;
scanf("%d%d"掘戚察,&s,&n);
s --將s-1;這樣用0-6代表星期一到日。
s +=n;
s%=7;//通過模除限定結果。
s++;轉換回1-7的表示方法。
printf("%d", s);/輸出結果。
return 0;
例二,依照下面的公式計算,直到結果小於0或者大於100為止,f(0)由外仔悶部輸入。
如果f(n)為奇數,f(n+1)=2f(n)
否則f(n+1)
f(n)/2-10
輸出計算結果。
題目很清晰,直接輸入並迴圈計算,直到符合退出條件為止。
對於條件的判斷就是第一種情況的簡單應用了。
**如下:#include
int main()
int r;
scanf("%d",&r);
while(r >=0 &&r <=100)//對結果進行範圍判斷。
if(r & 1) r *=2; /奇數的情況。
else r=r/2-10;//偶數的情況。
printf("%d", r);
return 0;
c語言資料的範圍怎麼求?
4樓:網友
離散數學沒學好吧。
1.串的概念,乙個數字是一位,若干位組成串,比如0011是4位串一般來說指的是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.資料和其表示的概念是分開的,這個自己慢慢理解吧。
5樓:
32位是指32位 0/1 ,能表示的數共有 2^32 個。
對於有符號型別,最高位0表示正數,1表示負數,因此範圍是 [-2^31, 2^31-1] 。
最好看看「補碼」的解釋)
16次方是老機器了,16位機上 int 是2個位元組。
6樓:網友
1 不同環境下int資料的佔用位元組不一樣 有十六位,也有32位。
2 當數有正負是 需要記錄這個數是正還是負,統一標準是首位標記,為正或為0首位為0,為負首位為1,除去首位還有 15位或者 31位,它們分別能表示 2的15次方個數 和2的31次方個數。
由於首位為0時包括 0,故正數數量比上述值少1。
7樓:救贖削腎客
分沒問題。
乙個二進位位可以表示為0 或者1,就是有兩種變化2個二進位位可以有00 .四種變化、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的基本資料型別包括哪些,C語言中基本資料型別包括哪些
語言包含5個基本資料copy 型別 void,int,float,double,和 char.c 定義了另外兩個基本資料型別 bool 和 wchar t.一些基本資料型別能夠被 signed,unsigned,short,和 long 修飾 所以short,long等等都不算基本資料型別。這是書上...
Java基本資料型別boolean佔記憶體多少
boolean佔1個bit,1 8個位元組,而boolean是引用型別,在棧記憶體中存放著它的引用,在堆記憶體中存放著它的物件 integer可以看成是物件 沒法計算它佔對少記憶體 java中boolean型別佔用多少個位元組 java虛擬機器規範 給出了4個位元組,和boolean陣列1個位元組的...
mybatis引數是基本資料型別時使用引數名為什
目前遇到的是,引數是基本資料型別時,當傳遞乙個引數時,可以使用 當傳遞多個引數時,不可以使用 可以使用 原理上是不會報錯的啊,能否發段 出來看看啊。舉個例子來研究一下。java mybatis 傳入的動態引數必須要和資料庫中的欄位名一樣嗎 眾所周知,mybatis的傳入引數可以是各種java的基本資...