c语言中 字符char型数据类型,C++中基本数据类型的表现形式

原标题:C++中基本数据类型的表现形式

. C语言中的数据类型

88072316c5cd371c04ebd5000f39e44a.png

C语言中基本数据类型有字符型char,布尔型bool,整型int,长整型long,浮点型float等等,对应的还有无符号字符型unsigned char,无符号整型unsigned int等等。

基本数据类型所使用的输出占位符:

6cadfcbc6c90b50404ad00d62feac65c.png

基本数据类型所占字节数:

4560f3ec8f3ed1f12f6ea867039a68e7.png

整型 int

C语言的整型表示的是整数,分为有符号(int)和无符号(unsigned int)。其中无符号整型只能表示非负整数(自然数),不管是有符号还是没符号都存在极限值(表示的数字不能超过或小于某个值),而在C语言中,极限值并不是固定的,不同硬件、操作系统、编译器都可能有不同的值。想要了解当前C语言环境的整型极限值,可以通过引入limits.h头文件查看。具体代码:

ce84500a31ce7a7bb18dc7b2e42fbcef.png

字符型本质上是int型,C语言把字符型当作小整数进行处理,我们常见的ASCII码表即为字符与int值之间的映射关系。例如字符’a’对应的值为97,字符’A’对应的值为65,字符’0’的值为48。在ASCII码中字符的取值范围为00000000~11111111,可以看成是0-127的整数。虽然ASCII码的取值范围是0-127,但是C语言中字符型char的表示范围和整型int一样受环境影响。

浮点类型 float

浮点类型(浮点数)指的就是小数,float(单精度浮点)的有效数字为7位。

C语言标准规定,浮点数在内存中以科学计数法的形式来存储,具体形式为:

flt= (-1)sign × mantissa × baseexponent

对各个部分的说明:

flt 是要表示的浮点数。

sign 用来表示 flt 的正负号,它的取值只能是 0 或 1:取值为 0 表示 flt 是正数,取值为 1 表示 flt 是负数。

base 是基数,或者说进制,它的取值大于等于 2(例如,2 表示二进制、10 表示十进制、16 表示十六进制……)。数学中常见的科学计数法是基于十进制的,例如 6.93 × 1013;计算机中的科学计数法可以基于其它进制,例如 1.001 × 27 就是基于二进制的,它等价于 1001 0000。

mantissa 为尾数,或者说精度,是 base 进制的小数,并且 1 ≤ mantissa < base,这意味着,小数点前面只能有一位数字;

exponent 为指数,是一个整数,可正可负,并且为了直观一般采用十进制表示。

浮点类型与整型一样,能够表示的范围受当前环境影响。想要了解具体的极限值信息,可以从flaot.h中查看。float.h 头文件对 float、double 和 long double 三种类型的浮点数进行了说明,并且宏的命名也非常规范,以FLT_开头的表示宏用来描述 float 类型的特性,以DBL_开头的表示宏用来描述 double 类型的特性,以LDBL_开头的表示宏用来描述 long double 类型的特性。查看方式:

1ae22e3d4e5734ff983a233d4da94001.png

char 字符

char代表一个Unicode字符,它是System.Char的别名

charsomeChar ='a';//定义了一个字符

charnewLine='\n';//这是一个换行符

System.Char定义了一组静态方法:

ToUpper 将指定的字符转换为等效的大写形式

ToLower 将指定的字符转换为等效的小写形式

IsWhiteSpace 判断指定的字符是否为空白字符

……

例子:

Console.WriteLine(char.ToUpper('c'));//输出的是一个大写的CConsole.WriteLine(char.ToLower('c'));//输出的是还是它自己Console.WriteLine(char.ToUpper('C'));//输出的是还是它自己Console.WriteLine(char.ToLower('C'));//输出的是一个小写的cConsole.WriteLine(char.IsWhiteSpace('c'));//输出为FalseConsole.WriteLine(char.IsWhiteSpace('\t'));//输出为TrueConsole.WriteLine(char.IsWhiteSpace(' '));//输出为True

可以通过char或者System.Char来调用

例子:

Console.WriteLine(char.ToUpper('c'));//输出的是一个大写的CConsole.WriteLine(System.Char.ToUpper('c'));//输出的是一个大写的C

现在这边会有一个问题,可能会引起一个bug,就是ToUpper,ToLower会遵循用户的地区设置,例如,char.ToUpper('i') == 'I',这句话在土耳其地区设置里就会返回False。

culture-invariant版本的方法

总会应用英语的Culture

ToUpperInvariant

ToLowerInvariant

例子:

//使用固定区域性的大小写规则,不依赖于区域性的设置Console.WriteLine(char.ToUpperInvariant('i'));//输出的是大写的IConsole.WriteLine(char.ToUpper('i', CultureInfo.InvariantCulture));

char是16bit的,足够代表基本多语言平面的任何Unicode字符,如果超出这个范围,那么必须使用surrogate pairs。

布尔类型bool

布尔类型(bool)是C++新增的一种基本数据类型。在标准的C语言中并未定义bool类型,如果需要使用bool类型,程序员可以通过宏定义来自定义一个bool类型,定义语句如下:

#definebool int

#definefalse 0

#definetrue 1

也就是将int型定义为bool型,将int型的0和1两个值分别定义为bool类型的两个值true和false。

但是在C++中则不需要这么麻烦,C++中对bool类型已经做出了定义。

bool类型是C++语言基本数据结构之一,在80x86处理器上编译器gcc 4.8.1和Visual C++ 2012给bool类型变量分配1个字节长度。bool类型取值范围仅有两个值:true和false。在做逻辑运算时,默认非零即为ture。

定义bool类型变量也与其他基本数据类型变量的定义类似,如下所示:

boolflag =true;返回搜狐,查看更多

责任编辑:

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值