用途
将源码与掩码经过按位运算或逻辑运算得出新的运算元。其中要用到按位运算如OR运算和AND运算。用于如将ASCII码中大写字母改作小写字母。如A的ASCII码值为65= (01000001)2,a的ASCII码值为97=(01100001)2,要想把大写字母A转化为小写字母只需要将A的ASCII码与(00100000)2进行或运算就可以得到小写字母a。
IP位址掩码
规则
IP位址的规则255.255.255.0 表示子网掩码地址。
将子网掩码转化为2进制代码后 例如:192.168.1.2 /24
判断地址192.168.1.2为C类地址,所以子网掩码为255.255.255.0,换算为二进制就是11111111.11111111.11111111.00000000。
解释
1代表网路位,0代表主机位。作为子网掩码1和0 都必须是连续的。
掩码作用
下面主要介绍IP位址(IP Address)的概念及其子网掩码(Subnet Mask)的计算。
目前使用的IPv4协定对IP位址强行定义了一些保留地址,即:“网路地址”和“广播地址”。所谓“网路地址”就是指“主机号”全为“0”的IP位址,如:125.0.0.0(A类地址);而“广播地址”就是指“主机号”全为“255”时的IP位址,如:125.255.255.255(A类地址)。
子网掩码是用来标识两个IP位址是否同属于一个子网。它也是一组32位长的二进制数值,其每一位上的数值代表不同含义:为“1”则代表该位是网路位;若为“0”则代表该位是主机位。和IP位址一样,人们同样使用(点式十进制)来表示子网掩码,如:255.255.0.0。如果两个IP位址分别与同一个子网掩码进行按位“与”计算后得到相同的结果,即表明这两个IP位址处于同一个子网中。也就是说,使用这两个IP位址的两台计算机就像同一单位中的不同部门,虽然它们的作用、功能、乃至地理位置都可能不尽相同,但是它们都处于同一个网路中。
子网掩码计算方法自从各种类型的网路投入各种套用以来,网路就以不可思议的速度进行大规模的扩张,目前正在使用的IPv4也逐渐暴露出了它的弊端,即:网路号占位太多,而主机号位太少。目前最常用的一种解决办法是对一个较高类别的IP位址进行细划,划分成多个子网,然后再将不同的子网提供给不同规模大小的用户群使用。使用这种方法时,为了能有效地提高IP位址的利用率,主要是通过对IP位址中的“主机号”的高位部分取出作为子网号,从通常的“网路号”界限中扩展或压缩子网掩码,用来创建一定数目的某类IP位址的子网。当然,创建的子网数越多,在每个子网上的可用主机地址的数目也就会相应减少。
要计算某一个IP位址的子网掩码,可以分以下两种情况来分别考虑:
情况1:无须划分成子网的IP位址。一般来说,此时计算该IP位址的子网掩码非常地简单,可按照其定义就可写出。例如:某个IP位址为12.26.43.0,无须再分割子网,按照定义我们可以知道它是一个A类地址,其子网掩码应该是255.0.0.0;若此IP位址是一个B类地址,则其子网掩码应该为255.255.0.0;如果它是C类地址,则其子网掩码为255.255.255.0。其它类推。
情况2:要划分成子网的IP位址。在这种情况下,如何方便快捷地对于一个IP位址进行划分,準确地计算每个子网的掩码,方法的选择很重要。下面我介绍两种比较便捷的方法:当然,在求子网掩码之前必须先清楚要划分的子网数目,以及每个子网内的所需主机数目。
方法一:利用子网数来计算。
首先,将子网数目从十进制数转化为二进制数;
接着,统计由“1”得到的二进制数的位数,设为N;
最后,先求出此IP位址对应的地址类别的子网掩码。再将求出的子网掩码的主机地址部分(也就是“主机号”)的前N位全部置1,这样即可得出该IP位址划分子网的子网掩码。
例如:需将B类IP位址167.194.0.0划分成28个子网:
(28)10=(11100)2;
此二进制的位数是5,则N=5;
此IP位址为B类地址,而B类地址的子网掩码是255.255.0.0,且B类地址的主机地址是后2位(即0-255.1-254)。于是将子网掩码255.255.0.0中的主机地址前5位全部置1,就可得到255.255.248.0,而这组数值就是划分成 28个子网的B类IP位址167.194.0.0的子网掩码。
方法二:利用主机数来计算。
首先,将主机数目从十进制数转化为二进制数;
接着,如果主机数小于或等于254(注意:应去掉保留的两个IP位址),则统计由“1”中得到的二进制数的位数,设为N;如果主机数大于254,则 N>8,也就是说主机地址将超过8位;
最后,使用255.255.255.255将此类IP位址的主机地址位数全部置为1,然后按照“从后向前”的顺序将N位全部置为0,所得到的数值即为所求的子网掩码值。
例如:需将B类IP位址167.194.0.0划分成若干个子网,每个子网内有主机500台:
(500)10=(111110100)2;
此二进制的位数是9,则N=9;
将该B类地址的子网掩码255. 255.0.0的主机地址全部置 1,得到255.255.255.255。然后再从后向前将后9位置0,可得:11111111. 11111111.11111110.00000000即255.255.254.0。这组数值就是划分成主机为500台的B类IP位址167.194.0.0的子网掩码。
子网掩码的主要功能是告知网路设备,一个特定的IP位址的哪一部分是包含网路地址与子网地址,哪一部分是主机地址。网路的路由设备只要识别出目的地址的网路号与子网号即可作出路由定址决策,IP位址的主机部分不参与路由器的路由定址操作,只用于在网段中唯一标识一个网路设备的接口。
如果网路系统中只使用A、B、C这三种主类地址,而不对这三种主类地址作子网划分或者进行主类地址的汇总,则网路设备根据IP位址的第一个位元组的数值範围即可判断它属于A、B、C中的哪一个主类网,进而可确定该IP位址的网路部分和主机部分,不需要子网掩码的辅助。 但为了使系统在对A、B、C这三种主类网进行了子网的划分,或者採用无类别的域间选路技术(Classless Inter-Domain Routing,CIDR)对网段进行汇总的情况下,也能对IP位址的网路及子网部分与主机部分作正确的区分,就必须依赖于子网掩码的帮助。
子网掩码使用与IP相同的编址格式,子网掩码为1的部分对应于IP位址的网路与子网部分,子网掩码为0的部分对应于IP位址的主机部分。将子网掩码和IP位址作与操作后,IP位址的主机部分将被丢弃,剩余的是网路地址和子网地址。例如,一个IP分组的目的IP位址为:10.2.2.1,若子网掩码为:255.255.255.0,与之作与运算得:10.2.2.0,则网路设备认为该IP位址的网路号与子网号为:10.2.2.0。
中断掩码:
中断掩码是指在彙编语言中进行中断前,需要对相应的中断状态字进行授权允许或禁止相关中断的操作。即读OCW1进行命令字的写入。OCW1要写入奇入口地址,顺序为M7~M0,若Mi=1:禁止由IRi引入的中断请求;若Mi=0:允许IRi端中断的引入。

















