C/C++ 合法整數與字元

萬有引力丶發表於2019-02-02

一、C語言中的合法整型

首先C語言中的整型有三種表示方式:十進位制、八進位制和十六進位制。(C語言中沒有表示二進位制的整型)

 

十進位制:

如 int a = 63; //一個正常的整型 

 

八進位制:

如果想用8進位制對變數進行賦值則這樣

 int a = 077; //八進位制給整型賦值 

數字0開頭,由0~7組成

 

十六進位制:

 int a = 0x3F; //十六進位制給整型賦值 

以0x開頭,由0~F組成

所以我們對合法整數的判斷,可以首先從進位制判斷入手,

  1. 若以0開頭,則為八進位制,不能出現大於等於8的數字;
  2. 若以0x開頭,則為十六進位制,數字的範圍為0~F;
  3. 若都不是,則為十進位制,要求數字為0~9。

二、C語言中的合法字元

C語言中的字元常量要求以單引號 ` ` 括起來,否則為非法字元。

除了直接表示的字元外,部分為轉義字元比如

`
`    // 換行
`	`    // 製表
`\`    // 斜杆
`"`    // 引號

還有一部分為用八進位制或十六進位制整型表示的字元,在對應數值前加上斜槓,注意C語言規定不允許使用斜槓加十進位制表示字元!

`?`    // 直接表示的?字元
`x3F`    // 十六進位制表示的?字元
`

相關文章