IP地址基础知识

  二进位 (Binary)

  为什麽我们要学二进位哎呀还不是该死的蠢电脑嘛它只懂得01那麽我们要和电脑沟通的时候也只好装蠢一些才行。当电脑要处理IP运算的时候最终是以二进位的形式进行的。

  我们人类最习惯的运算规则是十进位也就是从09为一圈回到零的时候就进一位数;而我们前面讨论的bitbyte则是八进位07为一圈回到零就进一位数;另外还有十六进位015为一圈回到零进一位,但使用数字15很容易和十进位混乱所以在十六进位里面从1015之间分别用英文字母AF代替了,所以我们通常看到的十六进位是从0F的排列。

二进位是一样的从01为一圈回到0进一。

十进位

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

二进位

0

1

10

11

100

101

110

111

1000

1001

1010

1011

1100

1101

1110

1111

十六进位

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

 

不过我们在IP地址上面看到的十进位数字最大不会超过255(11111111)这个数值。我们可以先将207次方列出来

27

26

25

24

23

22

21

20

128

64

32

16

8

4

2

1

 

E.g.   255(11111111) = 27+26+25+ 24 +23 +22 +21 + 20

 

十进位换成二进位

从左向右,从第一个比该数字小的栏位开始,在该栏上填1,然後用余数继续寻找下一栏位再填1直到再没余数为止最後把其它栏位都填上0就可以了。

 

例如220decimalàbinary

  找到128<220,在128这栏上填1

  继续余数92220-128=92)我们找到64这栏位是最合适。在64这栏也填上1

  继续余数2892-64=28)我们找到16这栏位是最合适。在16这个栏位也填上1

  继续余数1228-16=12)我们找到8这栏位是最合适。在8这个栏位也填上1

  继续余数412-8=4)我们找到4这栏位刚好对应。在4这个栏位也填上1

  因为再没有余数了其它都填上0就对了。

 

其结果如下

128

64

32

16

8

4

2

1

1

1

0

1

1

1

0

0

 

 

二进位换算成十进位

凡是1所对应的数字相加得出来的和就是十进位数字了。

 

Windows自带的calc工具

  “附件/计算器”或“runcalc

            选择科学计数法(View->Scientific

     然後点选“十进位(dec)”输入数值

     再点选“二进位(bin)”就可以获得换算数值了

 

  认识IP地址

                Run:  cmd,在弹出的命令行窗口中输入ipconfig

  

IP地址的分类(Class):

Network ID

以“0”开头

 

00000000

0不可用

A类(1-126

00000001

1

01111110

126

 

01111111

127(保留,做本机回路测试)

以“10”开头

B类(129-191

10000000

128

10111111

191255-64=191

以“110”开头

C类(192-223

11000000

192

11011111

223255-32=223

 

IP=网络号(network ID+主机号(host ID

A

1.0.0.0

126.0.0.0

B

128.0.0.0

191.255.0.0

C

192.0.0.0

223.255.255.0

 

 

如果您要组建一个单一的IP网路,那麽您得分配相同的Net ID给所有主机,而各主机的Host ID却必须是唯一的。也就是说没有任何两个Host ID会是一样的。

如果您的网路还要连上internet或其它网路的话,那麽您使用的Net ID也必须是唯一的否则就会造成突了。

好比您家的电话号码(Host ID)如果是1234567的话那麽在相同区号(Net ID)里,其他人将不会再使用这个号码。然而你不保在其它区号里面也有1234567这个号码哦。但如果台北使用了区号02的话台南就不能使用02了。无论如何整个区号加电话号码必须是唯一的。同样的道理整个IP地址(Net ID + Host ID)internet上也必须是唯一的。

 

另外有一个规则:在指定Host ID的时候换成二进位的话不可以是全部为0也不可以是全部为1

全为0,指的是网路本身识别码;

全为1,指的是为全域广播地址,即发送广播封包使用的地址。

 

  很明显A Class网路可分配的Host ID 要比C Class的要多好多倍。

  A IP地址:以“0”开头减去 1 bit,可划分27个(8-1Net ID,再减去0127,总计27 -2=126个。而每个A 类下可以分配224Host ID,再减去全为01两种情况,所以实际能用的主机位址只有224-2个。

        B IP地址:以“10”开头减去 2 bit,可划分的网路为214=16,384个(16-2Net ID,然後每个Class C之下则可以划分216 - 2 Host ID

    CIP地址:以“110”开头减去 3 bit,可划分的网路为221=2,097,152个(24-3Net ID,然後每个Class C之下则可以划分28 = 256 - 2 = 254Host ID

 

等级

开头

网路数目

主机数目

使用围

申请领域

A

0

126

16,777,214

1.x.x.x 126.x.x.x

国家级

B

10

16,384

65,534

128.x.x.x 191.x.x.x

跨国组织

C

110

2,097,152

254

192.x.x.x 223.x.x.x

企业组织

D

1110

-

-

224.- 239.-

特殊用途

E

1111

-

-

240.- 255.-

保留范围

    

  总结:

     1. AIP地址一个AIP地址是指,在IP地址的四段号码中,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。如果用二进制表示IP地址的话,AIP地址就由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”AIP地址中网络的标识长度为7位,主机标识的长度为24位,A类网络地址数量较少,可以用于主机数达1600多万台的大型网络。

  2. BIP地址一个BIP地址是指,在IP地址的四段号码中,前两段号码为网络号码,剩下的两段号码为本地计算机的号码。如果用二进制表示IP地址的话,BIP地址就由2字节的网络地址和2字节主机地址组成,网络地址的最高位必须是“10”BIP地址中网络的标识长度为14位,主机标识的长度为16位,B类网络地址适用于中等规模规模的网络,每个网络所能容纳的计算机数为6万多台。

        3. CIP地址一个CIP地址是指,在IP地址的四段号码中,前三段号码为网络号码,剩下的一段号码为本地计算机的号码。如果用二进制表示IP地址的话,CIP地址就由3字节的网络地址和1字节主机地址组成,网络地址的最高位必须是“110”CIP地址中网络的标识长度为21位,主机标识的长度为8位,C类网络地址数量较多,适用于小规模的局域网络,每个网络最多只能包含254台计算机。

 

 

整理自:http://net.zdnet.com.cn/network_security_zone/2008/0617/932042.shtml

<think>嗯,用户问的是广义普氏算法和最近邻迭代算法的区别。我需要先理解这两个算法各自是什么,然后找出它们的区别。 首先,广义普氏算法,可能是指广义的Procrustes分析,用来对齐形状,比如在图像处理或统计形状分析中。普氏分析主要是通过缩放、旋转和平移来最小化点集之间的差异,属于无监督对齐方法。参考里提到的普氏分析法是迭代找标准形状,用最小二乘法优化仿射变换参数[^2][^3]。这可能涉及到多组点集对齐到一个平均形状上,每次迭代调整参数,直到收敛。 然后是最近邻迭代算法(Iterative Closest Point, ICP)。ICP主要用于三维点云配准,分为两步:最近邻匹配和变换估计。通过不断寻找最近点对应,然后计算最优刚体变换,直到误差最小。这个过程是迭代的,每次找到对应点再优化变换参数。 接下来要比较它们的区别。应用场景方面,广义普氏可能更多用于形状统计或生物学中对齐样本,而ICP用于点云配准,比如三维重建。数学原理上,普氏分析可能用最小二乘法优化缩放、旋转和平移参数,而ICP每次迭代先找对应点再优化刚体变换。对应关系处理方面,普氏不需要显式对应,假设点顺序已知;ICP需要动态建立对应关系,通过最近邻搜索。收敛方式可能也有差异,普氏通过多组对齐到平均形状,而ICP是逐步逼近最优变换。 还要注意用户提到的参考资料,引用2和3提到了普氏分析的最小二乘和参数优化,而引用1是关于粒子群优化的,可能不相关。因此需要集中参考2和3的信息,确保回答准确。 可能需要详细说明每个算法的步骤,然后对比它们的处理方式、数学优化目标、对应关系建立等。最后总结区别,帮助用户明确两者的不同应用和原理。</think>### 广义普氏算法 vs 最近邻迭代算法(ICP)区别详解 #### 1. **核心目标与定义** - **广义普氏算法(Generalized Procrustes Analysis, GPA)** 旨在通过**仿射变换**(缩放、旋转、平移)将多组形状对齐到统一坐标系,最小化所有形状与平均形状的差异。其数学表达式为: $$\arg\min_{s, R, T} \| s R p^T + T - q^T \|_F$$ 其中$s$为缩放因子,$R$为旋转矩阵,$T$为平移向量,$p$和$q$为待对齐的点集。 - **最近邻迭代算法(Iterative Closest Point, ICP)** 主要用于**刚体配准**(仅旋转、平移),通过迭代寻找最近邻点对应关系并优化变换参数,最终最小化两点集的距离。其目标函数为: $$\arg\min_{R, T} \sum_{i=1}^n \| R p_i + T - q_j \|^2$$ 其中$q_j$是$p_i$的最近邻点。 --- #### 2. **关键区别** | **维度** | **广义普氏算法** | **最近邻迭代算法(ICP)** | |-------------------|-----------------------------------------------|--------------------------------------------| | **应用场景** | 多形状对齐(如生物形态分析、统计形状建模) | 单对点云配准(如三维重建、机器人定位) | | **数学优化目标** | 最小化所有形状与平均形状的仿射差异(含缩放) | 最小化两点集刚体变换后的欧氏距离 | | **对应关系建立** | 假设点集间已知对应顺序(无需动态匹配) | 依赖动态最近邻搜索建立对应关系(可能引入误差) | | **迭代内容** | 迭代更新平均形状与仿射参数 | 交替优化对应关系与刚体变换参数 | | **参数自由度** | 包含缩放因子(更灵活) | 仅旋转和平移(更严格) | --- #### 3. **流程对比** **广义普氏算法流程** 1. 计算所有形状的初始平均形状 2. 对每个形状独立优化仿射参数($s, R, T$) 3. 更新平均形状 4. 重复步骤2-3至收敛。 **ICP算法流程** 1. 初始化粗略对齐 2. 对每个点寻找目标点集中的最近邻 3. 计算最优刚体变换($R, T$) 4. 应用变换并更新误差 5. 重复步骤2-4至收敛。 --- #### 4. **优缺点对比** - **广义普氏算法** - ✅ 支持多组对齐,适用于形状统计分析 - ✅ 包含缩放因子,适应不同尺度 - ❌ 依赖点集间的已知对应关系 - **ICP算法** - ✅ 动态建立对应关系,适应部分重叠点云 - ✅ 计算效率高,适合实时应用 - ❌ 对初始位置敏感,可能陷入局部最优 --- #### 5. **典型应用场景** - **广义普氏算法**:人脸关键点对齐、生物骨骼形态比较 - **ICP算法**:三维扫描模型拼接、自动驾驶中的点云匹配 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值