Loading

2-1 C++内置类型

image-20220111212413251

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<iostream>
    using namespace std;
    int main(){
        
        cout<<"bool = "<<sizeof(bool)<<endl;
        cout<<"char = "<<sizeof(char)<<endl;
        cout<<"short = "<<sizeof(short)<<endl;
        cout<<"int = "<<sizeof(int)<<endl;
        cout<<"long = "<<sizeof(long)<<endl;
        cout<<"long long = "<<sizeof(long long)<<endl;
        cout<<"float = "<<sizeof(float)<<endl;
        cout<<"double = "<<sizeof(double)<<endl;
        return 0;
    }
    
  • 结果

    image-20220108144634335

几点说明

  • 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<iostream>
      using namespace std;
      int main(){
          unsigned int u = -1;
          cout<<u<<endl;
          return 0;
      }
      
    • 结果:4294967295【-1对4294967296取模】

取模与取余

  • 取余时商往0靠

    image-20220108151556026

  • 取模时商往负无穷靠

    image-20220108151546464

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

常见错误:给unsigned int 赋负值

  • 例程

    #include<iostream>
    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

posted @ 2022-01-11 21:30  咪啪魔女  阅读(59)  评论(0编辑  收藏  举报