C語言學習筆記 6 C語言中的正負數及輸出

2021-10-08 14:04:49 字數 1252 閱讀 9970

眾所周知,在數字表達中,數字是可以加上正負號用於分割槽正負數的。在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.指標的 在當代,大多數的現代計算機都會把記憶體分割成位元組,每個位元組都有著其唯一的位址。可執行程式由 和資料兩部分構成,而程式中的每個變數都占有著乙個或多個位元組,也就是說,每個變數都有著自己的位址。而這個就是指標的 其實每個位址就是乙個數,但是我們卻不能用數來表示位址,儲存位址,我們需要用指...