眾所周知,在數字表達中,數字是可以加上正負號用於分割槽正負數的。在c語言中也是如此,但是鑑於數字在計算機中的儲存方式,就需要乙個bit位來儲存符號位,如:
//正數
short a1 =-10
;short a2 =
-0x2dc9
;//十六進製制字首0x
//負數
int b1 =10;
int b2 =
+0174
;//八進位制字首0
以int為例,乙個int數值長度為4位元組,即32bit位:
在c語言中,規定符號位用0表示正數,用1表示負數。
考慮符號位和不考慮符號位,之間相差了乙個bit位,那麼能表示的數值範圍也相差了一倍;故在不需要考慮符號位的情況下(班級的人數、字元的長度等),可以在資料型別前面加上unsigned字首,例如:
unsigned
short a =12;
unsigned
int b =
1002
;unsigned
long c =
983452
;
這樣,這三個數就只能表示正數,數值的範圍也就越大了。
【如果是unsigned int,那麼可以省略int,即unsigned int a = 100;等價與unsigned a = 100;】
無符號數的輸出
將八進位制、十進位制和十六進製制的無符號數輸出時,也需要加上對應的格式控制符:
在進行數值輸出時,一定要考慮數值的正負以及對應的格式控制符,因為:
當以有符號數的形式輸出時,printf()會讀取數字在計算機內所佔的記憶體,並把最高位作為符號位,把剩下的作為數值位;
當以無符號數的形式輸出時,printf()也會讀取其在計算機中占用的記憶體,並把所有的記憶體都作為數值位對待;
如果不按照正確的形式輸出數值,可能導致數值位與符號位的讀取出錯,使得輸出的數值發生錯誤!!
#include
intmain()
執行結果:a=0100, b=0xffffffff, c=720m=-1, n=-2147483648, p=1 C語言學習筆記6
最開始學習的時候從最簡單的程式設計開始學習,那麼我們都會看一些關於 c語言基礎書籍 把基礎打好之後我們會慢慢的看一些 c語言提高書籍 那麼接下來我們就繼續進行打基礎的工作。1 啟動vc 編譯系統 單擊 file 選單中 new 命令,進入vc 編譯系統介面,選擇 files 選項卡,選擇c 原始檔命...
C語言學習筆記6
魯迅先生曾說過,偉大的成績和辛勤勞動是成正比例的,有一分勞動就有一分收穫,日積月累,從少到多,奇蹟就可以創造出來。學習也是同等道理,日積月累,逐漸儲備知識就可以完成自己的理想。然而看 c語言程式設計教程 是儲備知識的乙個方法,所以現在就來看看我要學習的知識內容。if語句是大型程式使用最多的結構,不管...
C語言學習筆記 6
1.指標的 在當代,大多數的現代計算機都會把記憶體分割成位元組,每個位元組都有著其唯一的位址。可執行程式由 和資料兩部分構成,而程式中的每個變數都占有著乙個或多個位元組,也就是說,每個變數都有著自己的位址。而這個就是指標的 其實每個位址就是乙個數,但是我們卻不能用數來表示位址,儲存位址,我們需要用指...