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__', '_ ...
随机推荐
- dubbo序列化问题(一)浮点数问题
转
dubbo是一个分布式服务框架,在国内比较常用,在开发过程中遇到一个浮点数反序列化问题. 问题描述,当参数是float类型的3.7,反序列化却得到了一个double类型的值:3.70000004768 ...
- liunx下安装Nginx
Linux下nginx的安装以及环境配置 https://blog.csdn.net/qq_42815754/article/details/82980326 第一步:下载nginx压缩包 在这里可以 ...
- Win32 GDI 在内存中绘制彩色的位图
Wind32 GDI在内存中绘制彩色位图 1创建兼容的内存DC hPicture为创建的静态文本框控件句柄 LRESULT OnPaint(HWND hWnd) { PAINTSTRUCT ps; H ...
- python模块xlsxwriter使用
1.安装 pip install XlsxWriter 2.使用 # -*- coding: utf-8 -*- from io import BytesIO import qrcode # impo ...
- 华为交换机S5700-52C-EI配置以太网和snmp服务
配置以太网 通过超级终端Hyper Terminal和console串口线链接华为交换机 # 用超级终端打开,配上串口线,用9600波特率链接 system-view interface Vlanif ...
- 【VMware VCF】VCF 5.2:挂载远程 vSAN 数据存储。
VMware vSAN 解决方案中,为了充分利用 vSAN HCI 集群内的存储资源, vSAN HCI 和 vSAN HCI 集群之间可以相互共享存储资源,这种解决方案早期叫 vSAN HCI Me ...
- the request was rejected because no multipart boundary was found
报错: Failed to parse multipart servlet request; nested exception is java.io.IOException: org.apache.t ...
- Spark Dataframe 转 Json
import org.apache.spark.sql.DataFrame import org.apache.spark.sql.functions._ import org.apache.spar ...
- .NET 压缩/解压文件
本文为大家介绍下.NET解压/压缩zip文件.虽然解压缩不是啥核心技术,但压缩性能以及进度处理还是需要关注下,针对使用较多的zip开源组件验证,给大家提供技术选型 目前了解到的常用技术方案有Syste ...
- vim命令之多行注释
vim常用命令之多行注释和多行删除 vim中多行注释和多行删除命令,这些命令也是经常用到的一些小技巧,可以大大提高工作效率. 1.多行注释: 1. 首先按esc进入命令行模式下,按下Ctrl + v, ...