IP地址计算

关于IP地址的知识

我们当前使用的IP地址为IPV4即网际协议版本4,它是由4个字节(32位二进制组成),由于32位二进制数量太多,所以我们常见的是四段十进制地址。(例如:192.168.1.1)每个IP地址有网络号和主机号两部分,当分配给主机号的二进制位越多,则局域网内的主机数量就越多,相反地主机数量就越少,反之同理。

IP地址分为五大类:

  1. A类地址:0.0.0.0-127.255.255.255(政府机构)
    默认子网掩码:255.0.0.0(/8)
  2. B类地址:128.0.0.0-191.255.255.255(中等规模公司)
    默认子网掩码:255.255.0.0(/16)
  3. C类地址:192.0.0.0-223.255.255.255(任何需要的人)
    默认子网掩码:255.255.255.0(/24)
  4. D类地址:224.0.0.0-239.255.255.255(组播)
  5. E类地址:240.0.0.0-247.255.255.255(科研实验)

IP地址的计算

那么当给出一个IP地址和子网掩码时,我们要怎么计算他的网络号、主机号、广播号(广播地址)与主机数量呢?
假设有一个C类地址为:192.9.200.13 子网掩码为:255.255.255.0

1、首先我们需要把IP地址和子网掩码都转换为二进制
11000000 00001001 11001000 00001101 = 192.9.200.13
11111111 11111111 11111111 00000000 = 255.255.255.0


2、将两串二进制按位进行与(&)运算后得出的结果即为网络部分
11000000 00001001 11001000 00001101
11111111 11111111 11111111 00000000
——————————————————————
11000000 00001001 11001000 00000000 = 192.9.200.0
即网络号为:192.9.200.0


3、将子网掩码取反后再与IP地址按位进行与(&)运算后得出的结果即为主机部分
11000000 00001001 11001000 00001101
00000000 00000000 00000000 11111111
——————————————————————
00000000 00000000 00000000 00001101 = 0.0.0.13
即主机号为:0.0.0.13(或13)


4、主机数量的计算
计算主机数量只需观察子网掩码,255.255.255.0代表着前24位是1,后8位是0,主机数量即为“2的n次方”,此处的n即为0的数量。

该例子的主机数量即2的8次方为256个,由于每个IP网段都有网络号和广播号所以,需要去掉头和尾。即可用的主机数量为254个。(注意区分可用主机数量和主机数量)


5、广播号计算
第4点中说明了每个IP需要去掉头和尾,头部的网络地址在第2点中已经计算出来了为:192.9.200.0,那么广播地址则为尾部,即为:192.9.200.255

高招Visual Basic基础题目

说明

此文章中会列举一些或许可能出现在福建省高职分类招考中计算机类的Visual Basic题目,仅供参考。

题目及代码

菱形

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Dim a, b, i, j As Integer
a = Val(InputBox("请输入一个奇数值"))
b = a \ 2 + 1
For i = 1 To b
Print Tab(b - i + 1);
For j = 1 To i * 2 - 1
Print "*";
Next j
Print
Next i
For i = b - 1 To 1 Step -1
Print Tab(b - i + 1);
For j = 1 To i * 2 - 1
Print "*";
Next j
Print
Next i

三角形

1
2
3
4
5
6
7
8
9
Dim a, i, j As Integer
a = Val(InputBox("请输入打印行数"))
For i = 1 To a
Print Tab(a + 1 - i);
For j = 1 To i
Print "*";
Next j
Print
Next i

九九乘法表

1
2
3
4
5
6
7
Dim i, j As Integer
For i = 1 To 9
For j = 1 To i
Print i & "*" & j & "=" & i * j & " ";
Next j
Print
Next i

零巧数

1
2
3
4
5
6
7
8
Dim a, b, c, d, e As Integer
For a = 1000 To 9999 Step 1
b = a \ 1000
c = (a - b * 1000) \ 100
d = (a - (b * 1000) - (c * 100)) \ 10
e = a Mod 10
If c = 0 Then If (b * 100 + d * 10 + e) * 9 = a Then Print a
Next a

玫瑰花数

1
2
3
4
5
6
7
8
Dim a, b, c, d, e As Integer
For a = 1000 To 9999 Step 1
b = a \ 1000)
c = (a - b * 1000) \ 100)
d = (a - b * 1000 - c * 100) \ 10
e = a Mod 10
If b * b * b * b + c * c * c * c + d * d * d * d + e * e * e * e = a Then Print a
Next a

式数

1
2
3
4
5
6
7
8
Dim a, b, c, d, e As Integer
For a = 1000 To 9999 Step 1
b = a \ 1000
c = (a - b * 1000) \ 100
d = (a - (b * 1000) - (c * 100)) \ 10
e = a Mod 10
If (e * 1000 + d * 100 + c * 10 + b) = a * 4 Then Print a
Next a