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取模】
-
取模与取余#
常见错误:给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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用