learncpp-4 基本数据类型

4 基本数据类型

4.1 基本数据类型介绍

  • 比特、字节、内存地址
    • 变量是一块可以存储信息的内存的名称
    • 内存的最小单元是比特,但是每个内存地址对应一个字节
    • 内存里的所有数据都是一串比特,所以我们使用数据类型来告诉编译器如何以某种有意义的方式来解释/翻译内存的内容

4.8 浮点数

  • 默认情况下,浮点数字面量的类型是double
  • 浮点类型只能精确地表示一定数量的有效数字,如果有效数字数量太多的话可能会丢失精度

例如,float类型的精度为6-9位,这意味float可以精确表示的数最多有6个有效数字,如果有效数字的个数大于6则可能会丢失精度

  • 输出浮点数时,std::cout的默认精度是6,也就是假定所有浮点变量只有6个有效数字;可以使用std::setprecision改变输出浮点数的精度
  • 尽量使用double而不是float,因为float的精度更低
  • 永远不要假设浮点数是精确的
  • 默认情况下,小数部分为0的浮点数在输出时不包含小数位(例如,5.0输出为5)

4.12 类型转换

  • 类型转换
    • 类型转换不会改变原来的值,而是将原来的值作为输入,使用直接初始化生成一个目标类型的新值
  • 隐式类型转换可能会丢失数据
  • 括号初始化可以确保初始值在隐式类型转换时不会丢失数据:int x{5.5}会编译报错(这也是为什么推荐使用大括号初始化的主要原因之一)
  • 显式类型转换static_cast
    • static_cast不会进行范围检查,所以如果待转换的值不在目标类型的范围内,则会导致未定义的行为
  • std::int8_tstd::unit8_t会被大多数编译器当做字符而不是整数来处理
posted @ 2024-07-22 22:19  dengkang1122  阅读(0)  评论(0编辑  收藏  举报