C語言二進位制 八進位制 十六進製制整數書寫和輸出

2021-10-05 05:09:08 字數 2333 閱讀 1859

二、二進位制、八進位制、十六進製制整數的輸出

整數是我們生活中常用的資料型別,也是程式設計中常用的一種資料,c語言用int關鍵字來定義整數變數(int 是 integer 的簡寫)。

在定義變數的時候,可以加signed、unsigned、short和long四種修飾符。

signed:有符號的,可以表示正數和負數。

unsigned:無符號的,只能表示正數,例如陣列的下標、人的身高等。

short:短的,現在主流的64位作業系統下,整數占用記憶體4個位元組,使用 4

個位元組儲存較小的整數綽綽有餘,會空閒出兩個位元組來,這些位元組就白白浪費掉了。在c語言被發明的早期,或者在微控制器和嵌入式系統中,記憶體都是非常稀缺的資源,所有的程式都在盡可能節省記憶體。

long:長的,更長的整數。

乙個數字預設就是十進位制的,表示乙個十進位制數字不需要任何特殊的格式。但是,表示乙個二進位制、八進位制或者十六進製制數字就不一樣了,為了和十進位制數字區分開來,必須採用某種特殊的寫法,具體來說,就是在數字前面加上特定的字元,也就是加字首。

二進位制由 0 和 1 兩個數字組成,使用時必須以0b或0b(不區分大小寫)開頭。

以下是合法的二進位制:

int a =

0b101;

// 換算成十進位制為 5

int b =

-0b110010;

// 換算成十進位制為 -50

int c =

0b100001;

// 換算成十進位制為 33

以下是非法的二進位制:

int m =

101010

;// 無字首 0b,相當於十進位制

int n =

0b410;

// 4不是有效的二進位制數字

請注意,標準的c語言並不支援上面的二進位制寫法,只是有些編譯器自己進行了擴充套件,才支援二進位制數字。換句話說,並不是所有的編譯器都支援二進位制數字,只有一部分編譯器支援,並且跟編譯器的版本有關係。

八進位制由 0~7 八個數字組成,使用時必須以0開頭(注意是數字 0,不是字母 o)。

以下是合法的八進位制數:

int a =

015;

// 換算成十進位制為 13

int b =

-0101

;// 換算成十進位制為 -65

int c =

0177777

;// 換算成十進位制為 65535

以下是非法的八進位制:

int m =

256;

// 無字首 0,相當於十進位制

int n =

03a2;

// a不是有效的八進位制數字

十六進製制由數字 0~9、字母 a~f 或a~f(不區分大小寫)組成,使用時必須以0x或0x(不區分大小寫)開頭。

以下是合法的十六進製制:

int a =

0x2a

;// 換算成十進位制為 42

int b =

-0xa0

;// 換算成十進位制為 -160

int c =

0xffff

;// 換算成十進位制為 65535

以下是非法的十六進製制:

int m =

5a;// 沒有字首 0x,是乙個無效數字

int n =

0x3h;

// h不是有效的十六進製制數字

在現實生活和工作中,我們在寫十進位制數的時候,為了對齊或其它原因,在數值前面加0是無關緊要的,但是,在c語言中,不要在十進位制數前加0,會被計算機誤認為是八進位制數。下表是各種進製整數的輸出格式。

細心的讀者可能會發現,上表中沒有二進位制的輸出格式,雖然部分編譯器支援二進位制數字的書寫,但是卻不能使用printf函式輸出二進位制數。您可以編寫函式把其它進製數字轉換成二進位制數字,並儲存在字串中,然後在printf 函式中使用%s輸出。

示例:

/*

* 程式名:book.c,此程式用於演示二進位制、八進位制、十六進製制整數的輸出。

*/#include

intmain()

二進位制 八進位制 十六進製制

生活中我們普遍用十進位制,逢十進一。同理,二進位制八進位制和十六進製制是逢二進 一 逢八進 一 逢十六進一。十進位制是便於人理解而二進位制是便於電腦理解。二進位制在計算機內部使用是再自然不過的。但在人機交流上,二進位制有致命的弱點 數字的書寫特別冗長。二進位制和八進位制 二進位制和十六進製制之間的換...

二進位制八進位制 十六進製制

進製也就是進製位,對於接觸過電腦的人來說應該都不陌生,我們常用的進製包括 二進位制 八進位制 十進位制與十六進製制,它們之間區別在於數運算時是逢幾進一位。比如二進位制是逢2進一位,十進位制也就是我們常用的0 9是逢10進一位。具體的用法小編今天不著重解釋,主要針對他們之間的轉換加以討論 今天只講整數...

二進位制 八進位制 十六進製制

二進位制 二進位制是計算技術中廣泛採用的一種數制。二進位制資料是用0和1兩個數碼來表示的數。它的基數為2,進製規則是 逢二進一 借位規則是 借一當二 由18世紀德國數理哲學大師萊布尼茲發現。當前的計算機系統使用的基本上是二進位制系統,資料在計算機中主要是以補碼的形式儲存的。計算機中的二進位制則是乙個...