c语⾔中字符char型数据类型,C++中基本数据类型的表现形式原标题:C++中基本数据类型的表现形式
. C语⾔中的数据类型
C语⾔中基本数据类型有字符型char,布尔型bool,整型int,长整型long,浮点型float等等,对应的还有⽆符号字符型unsigned char,⽆符号整型unsigned int等等。
基本数据类型所使⽤的输出占位符:浮点型变量float
基本数据类型所占字节数:
整型 int
C语⾔的整型表⽰的是整数,分为有符号(int)和⽆符号(unsigned int)。其中⽆符号整型只能表⽰⾮负整数(⾃然数),不管是有符号还是没符号都存在极限值(表⽰的数字不能超过或⼩于某个值),⽽在C语⾔中,极限值并不是固定的,不同硬件、操作系统、编译器都可能有不同的值。想要了解当前C语⾔环境的整型极限值,可以通过引⼊limits.h头⽂件查看。具体代码:
字符型本质上是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 类型的特性。查看⽅式:
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;返回搜狐,查看更多
责任编辑:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论