typedef unsigned long u32 /* 将无符号长整型取别名为u32 */
typedef signed long s32 /* 将有符号长整型取别名为s32 */
typedef enum Boolean { /* 定义一个枚举类型,将1取名为True(真),0为False(假) */
True=1,
False=(!True)
} Boolean
Boolean isTypeA(u32 naturalNumber) /* isTypeA函数原型 */
int main()
{
u32 i=1
Boolean type
s32 amountOfA=0,amountOfB=0 /* 两个变量分别统计A类数和B类数 */
while(type=isTypeA(i),i<=1000)
{
if(type)
++amountOfA
else
++amountOfB
++i
}
printf("1到1000中A类数有%ld个,B类有%ld个\n",amountOfA,amountOfB)
return 0
}
Boolean isTypeA(u32 naturalNumber)
{
u32 n=naturalNumber
s32 numberOf0=0,numberOf1=0
while(n>0)
{
if( 0==(n&1) ) /* 判断1个无符号数最低位为0还是为1 */
++numberOf0
else
++numberOf1
n=n>>1 /*向右移1位*/
}
if(numberOf1>numberOf0)
return True
else
return False
}
A、B、C类地址的区别和划分:1. A类IP地址
一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”,
地址范围从1.0.0.0 到126.0.0.0。可用的A类网络有126个,每个网络能容纳1亿多个主机。
2. B类IP地址
一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址最高位必须是“10”,
地址范围从128.0.0.0到191.255.255.255。可用的B类网络有16382个,
每个网络能容纳6万多个主机 。
3. C类IP地址
一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。
范围从192.0.0.0到223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。
知道了上面的区别和划分,通过编程处理,就可以判断是哪一类了