启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第11天,点击查看活动详情
C++定义了一套包括算术类型和空类型的基本数据类型,其中算术类型包含了字符、整型数、布尔值、浮点型、空类型,空类型不对应具体的值,只是在一切特殊的场合使用,比如没有返回值的函数就可以返回空类型。 在理解算术类型之前,有一些概念是需要理解的:
计算机容量单位
电脑对数据的判断主要依据有没有通电来记录信息,所以,理论上对于每一个记录单位而言,计算机只认识0或者1。基于这个特征,0或者1的二进制在计算机当中存储单位我们称之为位(bit)也叫做比特,但是位太小了,所以又定义出了字节(Byte),一个字节是8位:
1byte = 8bit
字符集
实际上平时描述的字符集是编码字符集,这里需要几个步骤来理解:
首先,要明白字符的概念,字符和字节不是一会事儿,任何一个文字或者符号都是一个字符,不同的字符占用的字节也是不一样的。
其次,要明白字库表,不同的使用场景,使用的字符是不一样的,比如,在英文场景下,需要的是26个字母和其他特殊符号,但是如果在中文的环境下,那么使用的可能需要的是汉字的字符,所以就需要定义出需要使用的字符的集合,那么就是字库表。
再次,要明白编码规范,字符始终需要转换为二进制才可以存入计算机,那么对这些字符的存储会有一种叫做编码规范的东西来约定转换位二进制数的规则(毕竟不可以随意转换位二进制),那么这样的规则就是编码规范。
最后,同一编码规范的所有字符的二进制地址就构成了字符集,也就是编码字符集。
这里要明确的是:
1、不同的字符集使用在不同的场景下,比如,中文字符集又 GBK,UTF-8, GB2312,英文的ASICC还有通用编码规范unicode
2、不同的字符集因为编码规范不一样,导致一个字符的字节也是不一样的,比如一个汉字,在GBK和GB2312上占用2个字节,但是在utf-8上占用3个字节。
机器字长
是指计算机进行一次整数运算所能处理的二进制数据的位数(整数运算即定点整数运算)。因为计算机中数的表示有定点数和浮点数之分,定点数又有定点整数和定点小数之分,这里所说的整数运算即定点整数运算。机器字长也就是运算器进行定点数运算的字长,通常也是CPU内部数据通道的宽度。
今天先总结这些,之后还会补充,欢迎各位大佬多多指点呀。