2 1 C語言中的進製數的表示

2021-10-12 13:04:13 字數 2624 閱讀 1963

在c語言種,乙個數字預設就是十進位制的,表示乙個十進位制數字不需要任何特殊的格式。

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

1).二進位制

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

//正確的二進位制

int a=ob110 //換算成十進位制為6

int b=

-0b1101001 //換算成十進位制為105

int c=ob10001 //換算成十進位制為17

//錯誤二進位制

int a=

110//沒有字首,相當於十進位制

int b=ob510 //5不是有效的二進位制數

注意:並不是所有的編譯器都支援二進位制數字,只有一部分編譯器支援,並且跟編譯器的版本有關係

2).八進位制

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

//正確的八進位制數

int a =

023;

//換算成十進位制為 19

int b =

-0521

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

int c =

01787

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

//錯誤的八進位制

int m =

256;

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

int n =

03a2;

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

3).十六進製制

十六進製制由數字 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不是有效的十六進製制數字

4).十進位制

十進位制由 0~9 十個數字組成,沒有任何字首,和我們平時的書寫格式一樣

格式控制符

說明%c

輸出乙個單一的字元

%hd、%d、%ld

以十進位制、有符號的形式輸出 short、int、long 型別的整數

%hu、%u、%lu

以十進位制、無符號的形式輸出 short、int、long 型別的整數

%ho、%o、%lo

以八進位制、不帶字首、無符號的形式輸出 short、int、long 型別的整數

%#ho、%#o、%#lo

以八進位制、帶字首、無符號的形式輸出 short、int、long 型別的整數

%hx、%x、%lx、%hx、%x、%lx

以十六進製制、不帶字首、無符號的形式輸出 short、int、long 型別的整數。如果 x 小寫,那麼輸出的十六進製制數字也小寫;如果 x 大寫,那麼輸出的十六進製制數字也大寫。

%#hx、%#x、%#lx、%#hx、%#x、%#lx

以十六進製制、帶字首、無符號的形式輸出 short、int、long 型別的整數。如果 x 小寫,那麼輸出的十六進製制數字和字首都小寫;如果 x 大寫,那麼輸出的十六進製制數字和字首都大寫。

%f、%lf

以十進位制的形式輸出 float、double 型別的小數

%e、%le、%e、%le

以指數的形式輸出 float、double 型別的小數。如果 e 小寫,那麼輸出結果中的 e 也小寫;如果 e 大寫,那麼輸出結果中的 e 也大寫。

%g、%lg、%g、%lg

以十進位制和指數中較短的形式輸出 float、double 型別的小數,並且小數部分的最後不會新增多餘的 0。如果 g 小寫,那麼當以指數形式輸出時 e 也小寫;如果 g 大寫,那麼當以指數形式輸出時 e 也大寫。

%s輸出乙個字串

#include

intmain()

執行結果:

a=126, b=2713, c=7325603

a=86, b=1483, c=1944451

a=56, b=5cb, c=1dab83

a=56, b=5cb, c=1dab83

區分不同進製數字的乙個簡單辦法就是,在輸出時帶上特定的字首

#include

intmain()

注意:十進位制數字沒有字首,所以不用加#

C語言知識彙總 21 C語言的加減乘除及取餘

加減乘除是常見的數 算,c語言當然支援,不過,c語言中的運算符號與數學中的略有不同,請見下表。加法減法 乘法除法 求餘數 取餘 數學 無 c語言 c語言中的加號 減號與數學中的一樣,乘號 除號不同 另外c語言還多了乙個求餘數的運算子,就是 下面的 演示了如何在c語言中進行加減乘除運算 include...

C語言中的各種進製轉換

一 正數 1.十 二 2.二 十 3.十 八 4.八 十 6.十六 十 二 負數 正文 一 正數 在高速發展的現代社會,計算機浩浩蕩蕩地成為了人們生活中不可缺少的一部分,幫助人們解決通訊,聯絡,互動等各方面的問題。今天我就給大家講講與計算機有關的 進製轉換 問題。我們以 25.625 十 為例講解一...

C語言中的進製轉換 itoa sprintf

在c語言中經常會遇到將二進位制 八進位制 十進位制 十六進製制等之間的相互轉換,比如 在將八進位制以二進位制的形式列印出來等。可以用c語言 stdlib.h 中的itoa函式來做這件事情。char itoa int value,char string,int radix 例如 int i char ...