欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C/C++ 合法整数与字符

程序员文章站 2022-04-11 15:58:15
一、C语言中的合法整型 首先C语言中的整型有三种表示方式:十进制、八进制和十六进制。(C语言中没有表示二进制的整型) 十进制: 如 int a = 63; //一个正常的整型 八进制: 如果想用8进制对变量进行赋值则这样 int a = 077; //八进制给整型赋值 以数字0开头,由0~7组成 十 ......

一、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语言中的字符常量要求以单引号 ' ' 括起来,否则为非法字符。

除了直接表示的字符外,部分为转义字符比如

'\n'    // 换行
'\t'    // 制表
'\\'    // 斜杆
'\"'    // 引号

还有一部分为用八进制或十六进制整型表示的字符,在对应数值前加上斜杠,注意c语言规定不允许使用斜杠加十进制表示字符!

'?'    // 直接表示的?字符
'\x3f'    // 十六进制表示的?字符
'\077'    // 八进制表示的?字符

字符的数值表示时,前面的0可以省略,比如 '\x3f' 其实为 '0x3f' ,而 '\077' 可以写成 '\77' (不区分大小写)

!!但,类型为整型时,前面的0则不能省略

  1. 合法字符必须用单引号括起来
  2. 除了直接表示,某些特殊字符需要进行转义,比如斜杠和引号
  3. 通过斜杠加数值可以表示字符,但只能用十六进制和八进制表示
  4. 如果没有x,且出现了大于等于8的数,则为非法字符