2-1 C++内置类型

image-20220111212413251

2.1.1 算术类型(Arithmetic Types)

概览

image-20220108132716541

分类

整型与浮点型

  • 整型: shortintlonglong longchar
  • 浮点型: floatdouble

有符号和无符号

表示范围有差异,如 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, shortlonglong long大小随系统和编译器而定
    • int >= short
    • long >= int
    • long long > int
  • float 小数点后一般保留6位, double一般保留10位

选择

  • 整数要么用int,要么用long long。【避免使用charshort和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

原文链接: https://www.cnblogs.com/timothy020/p/15790181.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    2-1 C++内置类型

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/184727

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 上午10:47
下一篇 2023年2月12日 上午10:47

相关推荐