- 博客(10)
- 收藏
- 关注
原创 物理层:基础理论
物理层:基础理论对于一门偏向技术的课程,计算机网络中的基础理论常常被忽视,但实际上,这些基础理论很好的解释了网络数据传输速率是如何受限的,这或许对学习计算机的学生并不十分重要,但是没有基础理论的技术是有漏洞的,这也是为什么程序员要了解计算机底层的东西。《计算机网络》这本书物理层开篇就介绍了傅里叶变换,傅里叶变化的妙处在于它解释了,物理介质如何因为材料本身的带宽受限而导致数据传输速率的有限性。带宽首先,由于物理世界本身的约束,在物理介质中传输一个波(信号),随着这个波的频率的增大,这个波的振幅会有衰减
2021-04-15 17:18:24
203
原创 原码、反码与补码
原码、反码和补码原码在计算机中用二进制表示正整数,比如01111110表示16进制的7e。如果我们想表示负数怎么办?最直接的想法就是空出一位作为符号位,剩下的用来表示数据。如10000001表示-1这就是原码,粗略来看,这的确解决了用二进制表示负数的问题,但是仔细来看的话,这个编码方式还有很多的问题,比如0有两种表示的方法:10000000和00000000,及0有正0和负0之分。另外用原码加减法十分的麻烦,因为它模拟的是人对正负数的认知,需要判断两个数的绝对值的大小和符号,这使得加减法需要进行很多条件
2021-04-15 17:11:37
337
原创 函数重载的一些注意事项
函数重载相关函数重载时函数中比较重要的语法点,由于函数的其他机制,如隐性类型转换,默认参数等,使得函数重载容易使人迷惑,哪些情况下的语法是错误的。隐形类型转换函数重载是函数的参数类型个数不同导致的,函数重载是允许隐性类型转换发生的。比如void func(){ cout<<"func()"<<endl;}void func(int a){ cout<<"func(int a)"<<endl;}int main(){ func(3.0
2021-01-27 13:22:49
458
原创 关于引用的若干事
关于引用的若干事引用是c++中很重要的一个语法点,c++也推荐使用引用。引用继承了指针的优点,是地址层面的操作,同时它也对指针进行了一些封装,使得地址操作没有那么复杂了。引用对于引用最基本的解释就是:给一个变量起一个别名。也就是说两个变量名都指向同一块内存。声明变量需要注意的是:声明时必须初始化一旦初始化后,便不可更改c++语法定义引用声明必须初始化,没有初始化的引用等同于野指针,是有危害性的。c++对野指针没有硬性规定但是对引用初始化有硬性规定。引用初始化后便不能改变它那个变量,也就是说一
2021-01-26 13:21:02
234
1
原创 异常处理
异常处理程序员希望用户在使用他编写的程序的时候按照程序的要求来做,但是并不是所有的用户都会这样做。又或者因为一些硬件或者网络问题,导致程序在运行的时候出现了一些出乎意料的结果。这就需要程序员在编写程序的时候要考虑到这些问题,程序员要考虑到程序中那些变量的值是正常的,那些是不正常的。异常是由人定义的。try和throw语句介绍try和throw语句是c++中经常使用的处理异常的语句。throw的作用就是抛出一个异常(相当于一个标志,标志当前的异常状态),throw语句经常在try语句中使用。具体结构如下
2021-01-15 12:02:59
223
2
原创 迭代器
迭代器迭代器是用于遍历访问修改容器中元素的机制。它访问容器的形式和原理与指针相似。类型与指针相似,在使用之前需要先声明使用类型。这里用vector容器举例vector<int>::iterator i;这条语句声明了迭代器的类型,vector说明了这个迭代器使用于vector类型的容器,iterator说明这个迭代器是常规的迭代器(除iterator类型以外,还有const_iterator类型,声明了迭代器与容器之间的只读关系)。i 声明了迭代器的名称。最常用的我们使用auto来定
2021-01-15 10:27:38
303
原创 vector
vector从字面意义上来说,vector意为向量,就是一组具有相同类型元素的集合。实际上vector是容纳相同对象类型的集合。向量实质上和数组是相似的,二者的作用都是容纳,在使用中因为vector具有更好的特性,使用起来更加方便。初始化vectorvector是一个模版,想要使用vector就必须在头文件位置声明。#include <vector>using std::vector;vector在使用的时候必须说明使用类型,这个类型用尖括号括起来。vector<int&g
2021-01-14 09:56:58
136
原创 string
string 类初始化c++中的初始化语句大体可以分为两类:直接初始化和拷贝初始化。具体的初始化方式如下:string s1;string s2(s1);string s3=s1;string s4("string");string s5="string";string s6(n ,"s");其中s3和s5都是拷贝初始化。也就是说,凡是用‘=’初始化的均是拷贝初始化。string对象的操作string对象共有如下操作:os<<s; //将s写到输出流os当中,返回os
2021-01-12 11:32:39
190
原创 const
const基本用法const限定符指示一个变量的值是只读的,也就是不可以改变的。常常用在程序员不希望其他人改变的这个变量的值。e.g.const double pi=3.14跨文件使用实际上const限定符只对文件内有效,也就是说它的作用域仅在一个文件内,这一点是避免程序员对一个变量在不同文件中的重复定义引发的矛盾。也就是说,你在一个文件中定义了const double pi=3.14,你在另一个文件中也想使用这个变量你就不得不再次定义一次,但是这样又过于麻烦,所以如果我们想在多个文件中访问用一个
2021-01-08 09:55:05
196
2
原创 Unicode编码
Unicode编码来源最早人们使用的是ACSCII编码但是这种编码方式只能表示256种字符,也就是说他仅仅对于字母语言是可行的,对于中文这样的文字语言,有上万的字符,这种字符编码方式是不可行的。所以人们又研究出一种新的编码方式也就是Unicode编码。UnicodeUnicode编码原理非常简单就是将字符与一个编码对应,这些编码经过人为分组,每个组称为一个平面,第三个字节表示平面,后两个字节表示平面内字符的编码。也就是说每个平面有65536个编码,目前一共有17个平面(0x0000-0x10FFFF
2021-01-06 12:41:34
363
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅