2-1 C++内置类型


image-20220111212413251

目录
  • 2.1.1 算术类型(Arithmetic Types)
    • 概览
    • 分类
      • 整型与浮点型
      • 有符号和无符号
    • 存储
      • 单位转换
      • 常见类型的大小
      • 几点说明
      • 选择
  • 2.1.2 类型转换(Type Conversion):关于int 和 unsigned int
    • 计算值
    • 取模与取余
    • 常见错误:给unsigned int 赋负值
  • 2.1.3 字面值常量(literal)
    • 整型和浮点型字面量
    • 布尔字面值和指针字面值: 略
    • 转义序列
    • 指定字面值类型:添加前后缀

2.1.1 算术类型(Arithmetic Types)

概览

image-20220108132716541

分类

整型与浮点型

  • 整型: short\int\long\long long\char
  • 浮点型: float\double

有符号和无符号

表示范围有差异,如 char: -128-127; unchar: 0-255

存储

单位转换

  • 1bit表示1个二进制数。

  • 1byte=8bit,是可寻址的最小内存块,与一个整数相关联(该整数称为地址

  • 1word=4/8byte,是存储的基本单元

常见类型的大小

Type Minimum Size(byte)
bool 1
char 1
short 2
int 4
long 4
long long 8
float 4
double 8
  • 实验

    #include
    using namespace std;
    int main(){
        
        cout<<"bool = "<

几点说明

  • char 大小为 1byte , bool大小不定
  • int 一般为 32bite, short\long\long long大小随系统和编译器而定
    • int >= short
    • long >= int
    • long long > int
  • float 小数点后一般保留6位, double一般保留10位

选择

  • 整数要么用int,要么用long long。【避免使用char\short和long】
  • 浮点数尽量用double

2.1.2 类型转换(Type Conversion):关于int 和 unsigned int

以 32-bit int为例

计算值

  • unsigned int取值范围为0~4294967295【1+2+…232

  • 当赋予unsigned int的值val在此范围之外【最常见的情况是unsigned int 的值为一个负数】时,unsigned int = val对4294967296取模

    • 例程

      #include
      using namespace std;
      int main(){
          unsigned int u = -1;
          cout<
    • 结果:4294967295【-1对4294967296取模】

取模与取余

  • 取余时商往0靠

    image-20220108151556026

  • 取模时商往负无穷靠

    image-20220108151546464

  • 取模的性质:若a+b==模,那么c-a等价于c+b

常见错误:给unsigned int 赋负值

  • 例程

    #include
    using namespace std;
    int main(){
        unsigned int u = 10;
        int i = -42;
        cout<< u+i << endl;
        return 0;
    }
    
  • 结果:4294967264

2.1.3 字面值常量(literal)

字面值常量(literal)可以理解为赋给变量(variable)的值(value)。一般左右赋值符号(=)的右值。

整型和浮点型字面量

  • 整型
    • 十进制:20
    • 八进制:开头加0.024
    • 十六进制:开头加0x。0x14
    • 20= =024= =0x14
  • 浮点型
    • 小数点表示:3.1415
    • 科学计数法:3.1415E0/3.1415e0

布尔字面值和指针字面值: 略

转义序列

image-20220109101714461

指定字面值类型:添加前后缀

image-20220109101832539

相关