2.1.1 算术类型(Arithmetic Types)

概览

分类

整型与浮点型

  • 整型: 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;
    }
  • 结果

几点说明

  • 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靠

  • 取模时商往负无穷靠

  • 取模的性质:若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

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

转义序列

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

2-1 C++内置类型的更多相关文章

  1. golang的内置类型map的一些事

    golang的map类型是一个比较特殊的类型,不同于int, string, byte这样的基本类型,在经过一番探究之后得出了一些结论: 1.golang的map类型虽然是内置类型,但和基本类型有很大 ...

  2. JavaScript备忘录(1)——内置类型

    JavaScript有一些内置类型,还有很多常用的内置的方法,本文稍作总结,以备查阅. 值类型 我的理解,值类型是分配在栈上的,而引用类型(当然也包括引用类型内部的值类型)是分配在堆上的.值类型是不可 ...

  3. Python——内置类型

    Python定义了丰富的数据类型,包括: 数值型:int, float, complex 序列:(iterable) str, unicode, tuple, list, bytearray, buf ...

  4. C++内置类型对象之间的转换

    C++定义了一组内置类型对象之间的标准转换,在必要时它们被编译器隐式地应用到对象上. 隐式类型转换发生在下列这些典型情况下. 1. 在混合类型的算数表达式中 规则:在这种情况下最宽的数据类型成为目标转 ...

  5. C++ - 内置类型的最大值宏定义

    内置类型的最大值宏定义 本文地址: http://blog.csdn.net/caroline_wendy/article/details/24311895 C++中, 常常会使用, 某些类型的最大值 ...

  6. C++基本内置类型

    C++基本内置类型 基本内置类型包括算术类型和空类型. 算术类型 算术类型包括整型和浮点型. 类型 含义 最小尺寸 bool 布尔型 - char 字符型 8 bit wchar_t 宽字符型 16 ...

  7. C++ 传参时传内置类型时用传值(pass by value)方式效率较高

    来源:唐磊的个人博客<C++ 传参时传内置类型时用传值(pass by value)方式效率较高> 在<Effective C++>里提到对内置(C-like)类型在函数传参时 ...

  8. 易被忽略的Python内置类型

    Python中的内置类型是我们开发中最常见的,很多人都能熟练的使用它们. 然而有一些内置类型确实不那么常见的,或者说往往会被我们忽略,所以这次的主题就是带领大家重新认识这些"不同寻常&quo ...

  9. Python isinstance 方法 判断 built-in types(内置类型)技巧

    Python isinstance 方法 判断 built-in types(内置类型)技巧 d = {} isinstance(d, type({})) isinstance(d, dict) l ...

  10. Python内置类型——set

    Python中,内置类型set和frozenset用来表示集合,我们首先查看这两个类型支持的特殊对象,从而可以理解他们的特性. >>> dir(set) ['__and__', '_ ...

随机推荐

  1. 嵌入式软件开发人员有必要学习系统移植的知识吗?【ppt获取见文末】

    <从零开始学ARM>的配套视频说明 为了让粉丝更好的学习我的新书里面的知识, 一口君特地录制了配套学习视频, <从0学ARM第一期> <从0学ARM第一期> 视频已 ...

  2. WM_LBUTTONDOWN,WM_LBUTTONUP

    WM_LBUTTONDOWN //鼠标左键按下消息WM_LBUTTONUP //鼠标左键弹起消息参数和按下一样 当用户在窗口的客户区域中按住鼠标左键时,会发布WM_LBUTTONDOWN消息.如果未捕 ...

  3. Windows 7远程桌面连接Ubuntu 18.04

    从Windows 7远程到Windows系统比较简单,只要对方电脑开启远程桌面功能就可以了,但Windows 7远程桌面连接到Ubuntu 16.04比较复杂一点,具体操作步骤如下. 1 安装xrdp ...

  4. HLK-RM60 + openwrt调试

    1. 简介 HLK-RM60官网 https://www.hlktech.com/en/Goods-176.html 采用联发科SOC, MT7621/MT7905/MT7975 实际上采购的是MT7 ...

  5. WSL 使用

    WSL 是一个为在 Windows 10 和 Windows Server 2019 以上能够原生运行 Linux 二进制可执行文件(ELF 格式)的兼容层.可以把它当作一个只能用命令行交互的 Lin ...

  6. 手把手教你安装Jupyter Notebook(保姆级教程)

    来源于:https://blog.csdn.net/weixin_43855159/article/details/137738714 1. 什么是Jupyter Notebook Jupyter N ...

  7. 开源问卷调查和考试系统 SurveyKing 安装和使用教程

    最近公司又要搞什么满意度调查了,我这个小菜鸟又要头疼了.上次用那个破系统,界面丑不说,功能还少得可怜,搞得我加班到半夜.这回非得找个好用的不可. 正发愁呢,突然想起来前两天同事小王推荐了一个叫 &qu ...

  8. 关于 MemoryStream 的多次写入,模拟post请求,接收方 .net core web api无法读取到流数据,报 System.IO.IOException: Unexpected end of Stream, the content may have already be en read by another component.

    主要是业务不熟害死人.记录一下.真想抽自己几个嘴巴子 先说结论,知道这个结论的下面文字都是废话: 一.new MemoryStream 的时候,如果需要分次写入,只能是像下面这样子 MemoryStr ...

  9. SQL查折线图数据

    在做后台管理系统的时候,有很大概率是要与各种图表数据打交道, 那么如何通过SQL查出基本图表的数据呢,以折线图为例, X轴为日期,Y轴为统计数据,那么我们通过SQL如何查询出连续日期下的统计数据呢, ...

  10. EF Core – 乐观并发

    前言 之前写过 EF Core 悲观并发, 这篇主要讲一下乐观并发. 乐观并发的机制可以看这篇. Why Need This? 如果你用 EF Core 做数据管理, 建议你每个 Entity 都配置 ...