准备要初赛了,一想起我那菜的说不出话的初赛,我就慌得一批。
于是,我就把一些觉得不会或者因为知识点遗漏错了的东西收集起来,放在一起。
当然,有一些东西参考了一些其他人的文章。
会一直更新的。
awa
传播性、潜伏性、破坏性与隐蔽性
电脑用来读写光碟内容的机器(光盘驱动器?)
够对数字信号和模拟信号进行相互转换的设备
一个在传输层上以实现网络互连的东西。
广域网和局域网都可以用,大多数运行在OSI 7层协议的顶层–应用层。
主要是靠点击流量来获利,论坛不算是Web2.0的特征。
例子:谷歌,腾讯,新浪,网易,搜狐,MSM
这个东西里面许多东西是由用户贡献出来的,信息是由每个人贡献出来的,每个人都是投稿者。
(虽然贡献的许多内容只是由小部分的人贡献的)
博客,社区这些东西就是十分鲜明的特征。
例子:Flickr,维基,众多博客(就比如csdn)。
继承性,封装性,多态性
面向对象的编程语言的例子:C++,JAVA,C#
(C和pascal是结构化的编程语言)
雏形:Simula 语言
经典:SmallTalk 语言,现在还是面向对象语言的基础。
面向过程程序才是“自顶向下,逐步求精”,而面向对象程序设计并不是,而是基于问题对象的自底向上的设计方法。
(就是对象是下到上,过程是上到下)
计算机直接识别和执行的命令就是指令。
一条指令通常由操作码和地址码两部分组成。
操作码:这个操作的性质和功能
地址码:被操作的东西在哪里
( 0.25 ) 10 (0.25)_{10} (0.25)10
0.25 × 2 = 0.5 0.25\times 2=0.5 0.25×2=0.5(整数部分为 0 0 0 )
然后不要整数部分,变成 0.5 0.5 0.5
0.5 × 2 = 1.0 0.5\times 2=1.0 0.5×2=1.0(整数部分为 1 1 1 )
然后不要整数部分,变成 0.0 0.0 0.0
结束,顺着数,就是 ( 0.01 ) 2 (0.01)_{2} (0.01)2
(原码反码的+为string::operator+)(就是直接在字符串前面加一个 0 或者 1 )
原码:
反码:
(补码的+为int::operator+)(就是直接普通加减乘除的加)
补码:
8位二进制原码、反码、补码
真值 | 原码(B) | 反码(B) | 补码(B) |
---|---|---|---|
+127 | 0 111 1111 | 0 111 1111 | 0 111 1111 |
+38 | 0 010 0110 | 0 010 0110 | 0 010 0110 |
+0 | 0 000 0000 | 0 000 0000 | 0 000 0000 |
-0 | 1 000 0000 | 1 111 1111 | 0 000 0000 |
-38 | 1 010 0110 | 1 101 1001 | 1 101 1010 |
-127 | 1 111 1111 | 1 000 0000 | 1 000 0001 |
-128 | 无法表示 | 无法表示 | 1 000 0000 |
对于最后一个的解释:
前两个装不下,因为有九位,第三个可以装下是因为当数是 +/-0 的时候,补码都是 0 000 0000,那就可以用 1 000 0000 来表示。
(所以补码很nb,但是它区分不了+0和-0)
(但我不太知道把 0 分成 +0 和 -0 是干嘛用的)
用二进制代码表示的十进制数,就是把每一位拆开,每一个数都变成二进制,然后再拼起来。
这个完全很懵,看了很久才勉强知道一点。
我看的是这个博客的第八点吧:
点我查看 点我查看 点我查看
至于怎么转换出浮点数,我说不清楚,理解就行了,就不写了,直接看这位大佬的博客吧。
我就放一点我觉得要背的东西吧:
一个规格化的32位浮点数x的真值为:
x=(-1)s×(1.M)×2^(E-127)
一个规格化的64位浮点数x的真值为:
x=(-1)s×(1.M)×2^(E-1023)
(可以看出,当把 64 位非0浮点数强制转化成 32 为浮点数后,正负性一定不会变)
然后有一些特殊的数,这个是 32 位浮点数的表示方法
零值:E=0 & M=0 若sgn>0,+0 若sgn<0,-0 规定:+0=-0
无穷值:E=11111111(2) & M=0 若sgn>0,+∞ 若sgn<0,-∞
NAN:E=0 & M≠0
( sgn 就是看函数的值是正的还是负的)
OSI | TCP/IP |
---|---|
应用层 | 应用层 |
表示层 | |
会话层 | |
传输层 | 传输层 |
网络层 | 网络层 |
数据链路层 | 网络接口 |
物理层 | |
除此之外还有 Netbeui 和 IP 这两个协议。 |
为Internet中的每一台主机分配一个在全球范围唯一地址
四个数字,用 “.” 分开,每个数字范围是 0 ∼ 255 0\sim 255 0∼255 。
A类:0.0.0.0 - 127.255.255.255
(标准子网掩码:255.0.0.0 或 /8)
B类:128.0.0.0 - 191.255.255.255
(标准子网掩码:255.255.0.0 或 /16)
C类:192.0.0.0 - 223.255.255.255
(标准子网掩码:255.255.255.0 或 /24)
(/8 这个就是说换成二进制之后左边有 8 个 1,其它也是这个道理)
关于地址信息还有其它定位的划分方式:
微软和LINUX关系不太好(好像是),所以不能用 IE(Internet Explore) 。
与:and : ∧ ∧ ∧ 或者 ⋅ · ⋅
或:or : ∨ ∨ ∨ 或者 + + +
异或:xor: ⊕ ⊕ ⊕
非:not : ¬ 或者 ¬
非 > > > 与 > > > 或和异或
并:∪
交:∩
补: ^ 或 ∼ \sim ∼ 或着这样表示:
差: -
递推,式子是 f ( n ) = ( n − 1 ) ∗ ( f ( n − 1 ) + f ( n − 2 ) ) f(n)=(n-1)*(f(n-1)+f(n-2)) f(n)=(n−1)∗(f(n−1)+f(n−2)) 。
初始化为 f ( 1 ) = 0 , f ( 2 ) = 1 f(1)=0,f(2)=1 f(1)=0,f(2)=1
就是第 n n n 个数和其他错排完的 n − 1 n-1 n−1 任意一个交换,或者第 n n n 个数先和任意一个其他的数交换,剩下的再错排。
点我查看 点我查看 点我查看
Visual C++不是竞赛推荐语言
不是的还有 TP7 和 TC 。
Lazarus 是(pascal类),RHIDE 也是(C++类)。
2019 和 2022 以及 2022 之后。
(2019 是因为这一年没有NOIP)
第一届 NOI :1984年,DXP:“计算机的普及要从娃娃做起。”
第一届 NOIP :1995年
最好情况是在一个算法中,运气最好的。
最快情况则是用最好的算法,不管运气的事情。
引用传递:&a
指针传递:*a
值传递:a
值传递不会改变传递的数本身,而引用传递和指针传递会改变传递的数的本身。
( 就是采用值传递中,函数操作的地址跟实参不同,而采用引用传递和指针传递的时候相同)
看起来引用传递和指针传递好像一样?
实则不然,它们还是有区别的。
- 引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。
- 不能有NULL引用,引用必须与合法的存储单元关联(指针则可以是NULL)。
- 一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)。
以上引用内容来自:C++ 值传递、指针传递、引用传递详解