C++学习之路
数据类型
cin 与 cout 详解
在 C++ 中 std 命名空间 是 C++ 中标准库类型对象的命名空间。我们 常用的输入和输出 函数 都是定义在 std 命名空间中的,因此,我 们需要使用输入和输出,必须要引入 std 命名空间。
要引用一个命名空间中的内容,有三种方法,分别为
- 使用 using 引 入命名空间、
- 使用 using限定符
- 直接使用命名空间限制访问
using引入命名空间
语法
using namespace std;
直接使用 using 完全引入了 std 命名空间,后面可以直接使用 std 命 名空间中的所有内容了。
使用using限定符
语法
using std::cout;
using std::cin;
仅仅使用了 using 引入了 std 命名空间中的 cout 和 cin ,因此,接 下来在使用 cout 和 cin 时,不再需要使用命名空间了。
显式引用
语法
std::cout
std::cin
直接使用 std:: 的形式,显式的指定我们使用的 cout 是 std 命名空 间的,使用的 cin 也是std命名空间的。
cin 输入
语法
cin >>varname1>>varname2>>varname3;
使用 cin 连续输入了三个 变量
cin 可以一次性输入任意多个变量的值
cout 输出
语法
cout <<varname1<<varname2<<varname3;
使用cout连续输入了三个变量
cout可以一次性输出任意多个变量的值
还有clog 和cerr ,分别用于输出log和删除错误信息
使用都跟cout一模一样
常量与变量
常量
常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量。
常量可以是任何的基本数据类型,可分为整型数字、浮点数字、字符、字符串和布尔值。
常量就像是常规的变量,只不过常量的值在定义后不能进行修改。
变量
变量是程序运行中其值可以改变的量,变量需要指定数据类型,变量由变量名,变量值组成
常量直接使用即可;变量则先定义,在使用。
变量定义的语法
- 数据类型 变量名;
- 数据类型 变量名 = 数据;
例如 定义一个整型变量
int aa;
// 整型的默认初始值为0
int bb =100;
变量的使用
常见的加减乘除等等操作,可以直接使用变量
变量命名规则
- 在名称中只能使用字母(52)、数字(10)和下划线_
- 名称的第一个字符不能是数字
- 区分大写字符与小写字符
- 不能将C++关键字用作名称,不能存在二异性
拓展:见其名,知其意
常见数据类型
整形 integr int
- 保留整数数字
字符型 char char
- 保留单个字符
浮点型 float
- 保留小数浮点数
布尔 bool
- 保留真true ,假false值 true可以用非零整数代替,false可以用0代替
其他内置类型
一些基本类型可以使用一个或者多个类型修饰符进行修饰
- signed
- unsigned
- short
- long
注释
注释不仅可以用来解释程序某些部分的作用和功能(用自然语言描述代码的功能),在必要时,还可以将代码临时移除,是调试程序的好帮手。
通常而言,合理的代码注释应该占源代码的 1/3 左右
- 单行注释(也叫行注释)
//
- 多行注释(也叫块注释)
/**/
ctrl + k + / 或者 ctrl +shift +/
转义字符
在编程中有一些字符是打不出来的,比如换行,提示音,下一个制表位等等,于是程序语言的开发者就设计了转义序列(escape sequence)这种东西用来表达这些字符。
所谓转义,可以理解为 “采用某些方式暂时取消该字符本来的含义” ,这里的 “某种方式” 指的就是在指定字符前添加反斜杠 \,以此来表示对该字符进行转义。
数据的进制表示及相互转换
进制:进位记数制的简称,将数字符号按序排列成数位,并遵照某种由低 位到高位的进位方式计数表示数值的方法
基数:某进制计数制允许选用的基本数字符号的个数称为基数。
权:各进制中每一个固定位置对应的单位值称为权。权的大小是以 基数为底,数字符号所处的位置的序号为指数的整数次幂。
B表示二进制数,O表示八进制数,D表示十进制数, H表示十六进制数。
进制间的相互转换
十进制转二进制
方法:除基取余倒着读
二进制转十进制
方法:按权展开求和
十进制转八进制
方法同十转二
(116)10= (164)8
八进制转十进制
方法同二转十
十进制转十六进制&十六进制转十进制同上
小数转换10->2
乘基取整正着度
小数转换2->10
按权展开求和(从左到右,从-1次方开始)
八,十六进制相互转换
数据在内存中的存储方式-源码补码反码
原码
原码(0表示正数,1表示负数)
x=1100110,则[X]原=01100110
x=-1100111,则[X]原=11100111
反码
反码(正数的反码就是自身,负数的反码除符号位外,其他各位求反)
x=1100110,则[X]反=01100110,
x=-1100111,则[X]反=10011000,
反码肯定属于有符号位,相当于上面有符号位求反
补码
补码(正数的补码还是自身,负数的补码,符号位不变,其余取反, 然后最低为加1)
x=1100110,则[X]补=01100110
x=-1100111,则[X]补=10011001