2-1 C++内置类型

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++内置类型的更多相关文章
- golang的内置类型map的一些事
golang的map类型是一个比较特殊的类型,不同于int, string, byte这样的基本类型,在经过一番探究之后得出了一些结论: 1.golang的map类型虽然是内置类型,但和基本类型有很大 ...
- JavaScript备忘录(1)——内置类型
JavaScript有一些内置类型,还有很多常用的内置的方法,本文稍作总结,以备查阅. 值类型 我的理解,值类型是分配在栈上的,而引用类型(当然也包括引用类型内部的值类型)是分配在堆上的.值类型是不可 ...
- Python——内置类型
Python定义了丰富的数据类型,包括: 数值型:int, float, complex 序列:(iterable) str, unicode, tuple, list, bytearray, buf ...
- C++内置类型对象之间的转换
C++定义了一组内置类型对象之间的标准转换,在必要时它们被编译器隐式地应用到对象上. 隐式类型转换发生在下列这些典型情况下. 1. 在混合类型的算数表达式中 规则:在这种情况下最宽的数据类型成为目标转 ...
- C++ - 内置类型的最大值宏定义
内置类型的最大值宏定义 本文地址: http://blog.csdn.net/caroline_wendy/article/details/24311895 C++中, 常常会使用, 某些类型的最大值 ...
- C++基本内置类型
C++基本内置类型 基本内置类型包括算术类型和空类型. 算术类型 算术类型包括整型和浮点型. 类型 含义 最小尺寸 bool 布尔型 - char 字符型 8 bit wchar_t 宽字符型 16 ...
- C++ 传参时传内置类型时用传值(pass by value)方式效率较高
来源:唐磊的个人博客<C++ 传参时传内置类型时用传值(pass by value)方式效率较高> 在<Effective C++>里提到对内置(C-like)类型在函数传参时 ...
- 易被忽略的Python内置类型
Python中的内置类型是我们开发中最常见的,很多人都能熟练的使用它们. 然而有一些内置类型确实不那么常见的,或者说往往会被我们忽略,所以这次的主题就是带领大家重新认识这些"不同寻常&quo ...
- Python isinstance 方法 判断 built-in types(内置类型)技巧
Python isinstance 方法 判断 built-in types(内置类型)技巧 d = {} isinstance(d, type({})) isinstance(d, dict) l ...
- Python内置类型——set
Python中,内置类型set和frozenset用来表示集合,我们首先查看这两个类型支持的特殊对象,从而可以理解他们的特性. >>> dir(set) ['__and__', '_ ...
随机推荐
- 3. 从0开始学ARM-ARM模式、寄存器、流水线
关于ARM的一些基本概念,大家可以参考我之前的文章: <到底什么是Cortex.ARMv8.arm架构.ARM指令集.soc?一文帮你梳理基础概念[科普]> 关于ARM指令用到的IDE开发 ...
- 禅道项目管理系统权限绕过漏洞(QVD-2024-15263)
本文所涉及的任何技术.信息或工具,仅供学习和参考之用,请勿将文章内的相关技术用于非法目的,如有相关非法行为与文章作者无关.请遵守<中华人民共和国网络安全法>. 1. 概述 1.1 基本信息 ...
- Linux如何给根目录扩容内存
第一种:LVM分区格式,就是用系统默认的自动分区格式 1.添加一块20G大小的nvme硬盘 2.启动后,查看硬盘是否已经被系统识别 3.对/dev/nvme0n2进行分区,并设置分区属性 fdisk ...
- BooleanBuilder 如何根据自定义列名 模糊查询 使用PathBuilder
// 动态传参 // 1. 声明 PathBuilder:MyTable 为类名称,"myTable" 为首字母小写后的类名 PathBuilder<MyTable> ...
- Go plan9 汇编:内存对齐和递归
Go plan9 汇编系列文章: Go plan9 汇编: 打通应用到底层的任督二脉 Go plan9 汇编:手写汇编 Go plan9 汇编:说透函数栈 0. 前言 在 Go plan9 汇编系列文 ...
- C++ vector 访问元素用 at 和 [] 有什么区别?
C++ vector 访问元素用 at and [] 有什么区别? 前言: 最近同事开发过程遇到了一个奇怪的coredump问题,崩溃位置和提交改动没有任何关系,看了几小时后来才发现原来是vector ...
- 宝塔安装onlyoffice
1. 拉取镜像 docker pull onlyoffice/documentserver 2. 构建容器 进入宝塔管理面板->docker->镜像,可以看到镜像已被安装成功 配置容器参数 ...
- 04. 寻找两个正序数组的中位数 Golang实现
题目: 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2.请你找出并返回这两个正序数组的 中位数 . 算法的时间复杂度应该为 O(log (m+n)) . 示例 1: ...
- JavaScript Library – Alpine.js
前言 Alpine 是高山的意思.Alpine.js 是一个轻量级的 JS Framework. 我为什么会去用它呢? 是这样的,我在做企业网站开发的时候会有 2 个阶段. 第一个 draft 阶段, ...
- CSS & JS Effect – Section Design Waves
介绍 Section Waves 长这样 左边是没有 waves, 右边是加了 waves. 它的作用就是点缀. 让画面有一点 "Design" 的感觉. 参考 You ...