c++基础知识(2)

c++ primer plus第三章,包括整型、const限定符、浮点数和c++算术运算符

整型

(unsigned)short、(unsigned)int、(unsigned)long、(unsigned)long long

进制

默认情况下,cout以十进制格式显示整数。它还提供控制符dec、hex和oct分别用于指示cout以十进制、十六进制和八进制格式显示整数。

1
2
3
4
5
6
7
8
9
10
11
12
#include<iostream>
int main()
{
using namespace std;
int time = 40;
cout << " the time is " << time <<"in dec"<< endl;
cout << hex;//十六进制
cout << " the time is " << time <<"in hex"<< endl;
cout << oct;
cout << " the time is " << time <<"in oct"<< endl;
return 0;
}

cout << hex;等语句不会再屏幕上显示任何内容,而只是修改cout显示整数的方式。

char类型

bool类型:true or false 非零值解释为true,零解释为false

const限定符

1
const int Months = 12

常量被初始化后,其值就被固定了,编译器将不允许再修改该常量的值。

创建常量的通用格式如下:

1
const type name = value

常量定义时就要进行初始化,以下定义会报错:

1
2
const int toes;
toes = 10;

#define也可以用来定义符号常量,但使用const更好。

  • 首先,const可以明确指定类型;
  • 其次,可以使用c++的作用域规则将定义限制在特定的函数或文件中;
  • 第三,可以将const用于更复杂的类型,例如数组。

浮点数

表示浮点数:标准小数点表示法和E表示法(科学计数法)

12.34

2.52e+8 = $2.52*10^8$

浮点类型:float、double、long double

浮点数在内存中如何存储?使用二进制科学计数法

float:单精度 32bit;double:64bit

在内存中的存储:符号位(1bit 正0负1) 指数位(8bit)小数部分

由于浮点数的二进制科学计数法使得整数部分一定是1,因此整数部分不存储。

由于指数部分可能是正数可能是负数,因此将8bit的指数范围0-255划分为两部分,127-255表示指数为正,0-126表示指数为负

8.25表示成二进制:整数部分+小数部分(分别转换)1000.01

小数转化:0.25 * 2=0.5–>0(取出整数部分);0.5 * 2=1–>1 最后结果:01

8.25的二进制科学计数法:$1.00001*2^3$

8.25的科学计数法的指数3–>127+3=130

8.25在内存中的表示为:0 10000010 00001000000000000000000

c++算术运算符

加、减、乘、除、取模

类型转换

auto关键字:让编译器根据初始值的类型推断变量的类型

1
2
3
auto n = 100// n is int
auto x = 1.5; // x is double
auto y = 1.3e12L; // y is long double

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!