C++基础概念与编程范式解析
1. 浮点数及其局限性
浮点数允许处理从10 - 38到10 + 38的大范围数值,其小数点位置“浮动”,取决于指数值。但浮点数存在精度限制,在进行加减法运算时,如果参与运算的数值量级差异显著,可能会出现问题。例如,将.365E - 3与.365E + 7相加,结果转换为7位精度的浮点数后,小数部分被忽略,加法操作看似没有产生效果。此外,当两个数值接近时,计算它们的差值可能会导致结果精度大幅降低,甚至得到无意义的数值。因此,在使用浮点数进行计算时,需要考虑数值范围和相对大小,以确保计算结果的有效性。
2. 字符表示
计算机中的数据本身没有内在含义,字符通过唯一的整数代码(代码点)来表示。例如,值42既可以表示六周的天数,也可以表示星号字符,具体含义取决于解释方式。在C++中,单个字符可以用单引号括起来,编译器会生成对应的代码值。
2.1 ASCII码
20世纪60年代定义的美国信息交换标准代码(ASCII)是一个7位代码,共有128个不同的代码值。其中,0 - 31表示各种非打印控制字符,65 - 90对应大写字母A - Z,141 - 172对应小写字母a - z。小写和大写字母的代码仅在第六位不同。然而,7位ASCII码无法满足法语、德语等语言中带重音和变音符号字符的需求。为了克服这一限制,出现了8位扩展ASCII码,0 - 127的代码值与7位ASCII码相同,128 - 255的代码值可变。例如,Latin - 1是一种8位ASCII码变体,可用于大多数欧洲语言。但对于韩语、日语或阿拉伯语等语言,8位编码仍然不够。
2.2 UCS和Unicode
通用字符集(UCS)定义
超级会员免费看
订阅专栏 解锁全文
985

被折叠的 条评论
为什么被折叠?



