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. Shell 语言中的if条件

    Shell 语言中的if条件 一.if的基本语法:if [ command ];then 符合该条件执行的语句elif [ command ];then 符合该条件执行的语句else 符合该条件执行的 ...

  2. bat2exe

    https://blog.csdn.net/qq_23452385/article/details/109145151

  3. games101 作业1及作业2分析及解决 详解透视矩阵

    games101 作业1及作业2分析及解决 去年的时候把games101的课程以及作业完成,但是整个过程比较粗略,也借助了不少外界的力量(doge),于是最近准备抽几天集中再把作业(1-7)过一遍,常 ...

  4. 从0实现基于Linux socket聊天室-实现聊天室的公聊、私聊功能-4

    前面文章链接如下: <从0实现基于Linux socket聊天室-多线程服务器模型-1> <从0实现基于Linux socket聊天室-多线程服务器一个很隐晦的错误-2> &l ...

  5. A星搜索算法的更多细节

    A*搜索算法的更多内容 A*算法,也许你会习惯称它为「A*寻路算法」.许多人大概是因寻路--尤其是「网格地图」寻路认识它的,网上很多教程也是以网格地图为例讲解它的算法实现.这导致了许多人在遇到同样用了 ...

  6. LeetCode题集-3 - 无重复字符的最长子串

    题目:给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度. 我们先来好好理解题目,示例1中怎么得到长度为3的? 如果以第一个字符a为起始,不含重复的最长子串是abc:则我们这样表示(a) ...

  7. Navicat Premium 12的下载和安装

    首先下载navicate程序以及破解文件,这里一并存到了百度网盘直接下载即可 链接:https://pan.baidu.com/s/1a2QKHHUZ0ej1D78CjQ1ldA提取码:klus 解压 ...

  8. 音视频入门-8-ffmpeg小实验-v4l2 ubuntu取图、格式转换、编码成H264,ffplay观看

    1. getpic_transform_encode2h264.c #include <stdio.h> #include <string.h> #include <st ...

  9. STL标准模板库

    STL(Standard Template Library)标准模板库 是C++标准库中的一个重要组成部分,它提供了一组通用的模板类和函数,用于数据结构和算法的实现.STL的核心部分包括容器.算法和迭 ...

  10. Go 语言中值接收者和指针接收者方法调用的自动转换规则详解

    在 Go 语言中,方法的调用规则对于值接收者和指针接收者有一些特别的行为,这使得代码变得更加简洁和易用.我们来详细解释一下"方法值调用规则"和"方法表达式调用规则&quo ...