给你IP地址让你算出掩码(点分十进制),子网地址,广播地址。

给你IP地址让你算出掩码(点分十进制),子网地址,广播地址。

像要算出IP地址的掩码,子网地址,广播地址,先要记住几点。1:IP地址(A B C 三类)属于有类地址。A类地址掩码8位,B类地址16位,C类地址24位。

2:二进制 和十进制的转换记住(128,64,32,16,8,4,2,1)。

3:要知道要知道A B C类地址的数位是多少。A类0-126/B类128-191/C类192-223。记住不要能错。

我们先从二进制的运算说起,举例:192的二进制是多少呢?其实就向我上面说的二进制 和十进制的转换记住(128,64,32,16,8,4,2,1)就可以接出来。

我们先看192能不能减128?可以减128 那它就是1,如果不能被减就是0

192-128=64,我们在看128后面的那个数能不能被64减,可以减就是1,不可以减就是0如此类推。

二进制数字表示只有1 和 0.所以192的的二进制就是:11000000(二进制)

算二进制(0-255)你只要记住我上面说的的那些数 然后再操作其实是很简单的,不想我们以前上学时候老师教我们的那么麻烦。

我们在来说说IP地址运算出掩码,子网地址,广播地址:

举例:131.108.45.148/17

/17表示的是掩码地址,我们看下131开头的IP地址那属于B类地址(128-191)16位,也就是让我们算出131.108.45.148中45就是我们要找的掩码,子网地址和广播地址。我们首先看看B类地址16位的 可是现在是17位,我们要借一位

B类地址11111111.11111111.000000.000 16位

当我们借了后就变成11111111.11111111.10000000.00000000这就是现在的掩码的二进制,我们只要把不相同的那组 用二进制转换成十进制就可以得出掩码了,我们看不相同的那组 10000000 你可以把这8个数 看成我上面说的128 64 32 16 8 4 2 1 向对应下 你就会发现只要把变成1的那个数对应我说的那个几个数字的相加就是我们的掩码10000000,就是128 00000000,那我们的掩码就是255.255.128.0

注意:只要把从0 变成1的数字相加,一定要把我说的那些数记住 你们想像IP地址是32位的二进制,分成4段 每段8个数位 和我说的那些数一样都是8个数位,只要相互对照下就可以很快算出来

我们在来说说子网地址和广播地址,B类是16位 现在我们是/17位,等于说我们想B类地址借了1位,记住借了几位就是2的几次方,我们这就是2的1次方等于2.我们大家都知道IP地址每段的数位是0-255 共256,那2乘几等于256?是不是2*128=256 这个128就是我们要用它来帮我们分子网地址和广播地址。首先131.108.0.0(子网地址)-131.108.127.255(广播地址) 131.108.128.0(子网地址)-131.108.256.255(广播地址) 这就是我们算出来的子网地址和广播地址,那我再看看我们的IP是138.108.128.48,也就是说我们这个IP就是在138.108.0.0-138.108.127.255之间,所以答案就是子网地址:138.108.0.0 广播地址:138.108.127.255.他们中间的地址也就是我们的主机地址。

这就是我自己的理解 有不对的地方 错误的地方请大家提出,谢谢!~!

原文地址:https://blog.51cto.com/14557584/2442137

时间: 2024-08-01 22:47:22

给你IP地址让你算出掩码(点分十进制),子网地址,广播地址。的相关文章

根据Ip地址与掩码 得出 子网地址与广播地址

由于给予条件优先,没有直接给出子网地址与广播地址.但是又需要这两个参数,需要我们使用ip 地址与 子网掩码得出子网地址与广播地址.思路如下: 1. 子网地址, ip地址与 子网掩码分别换算成二进制, 两者相与,那么即得出 该子网地址. 如: 192.168.1.1   255.255.255.0   子网地址为192.168.1.0 , 换算成二进制数字, 算法如下. 01100000  01010100  00000001 00000001   (192.168.1.1)& 11111111

计算机网络-将C网192.168.25.0划分四个子网,计算每个子网的有效IP地址范围和对应网络掩码

首先计算子网掩码: 将256/4=64,主机块大小64 2的6次方=64 根据主机数量计算出掩码的最后一个字节为11000000,用十进制表示掩码为255.255.255.192 由于IP地址结尾全为0为网络地址:全为1为广播地址.两者都是不允许用作主机IP地址的. 因此,4个子网分为: 1> 192.168.25.1 -- 192.168.25.622> 192.168.25.65 -- 192.168.25.1263> 192.168.25.129 -- 192.168.25.190

算出日期对应的是周几

>>> 1-场景:输入日期,算出日期那天是周几. 2-直接上代码~ ------------------------------------------------------ 如果哪位朋友有更好的方法,期待交流推荐~ ------------------------------------------------------ 个人微信公众订阅号:IT知更鸟 (欢迎关注~) 原文地址:https://www.cnblogs.com/itRobins-wx/p/8676420.html

从1到非负整数n中1出现的次数 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数? 为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次, 但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化, 可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。

/*从1到非负整数n中1出现的次数求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此共出现6次,但是对于后面问题他就没辙了.ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数). */ import java.util.*; public class Class36 { public int NumberOf1Between1A

javascript基础程序(算出一个数的平方值、算出一个数的阶乘、输出!- !- !- !- !- -! -! -! -! -! 、函数三个数中的最大数)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script> /* 算出一个数的平方值 function add(a){ var b=Math.sqrt(a); return b; } alert(add(3));*/ /*// 算出一个数的阶乘 func

一次 Oracle 算出运算溢出问题 排查解决 (并非除数为零!)

前段时间 出现过这个问题,: 表中有一列为number类型 rec_recordlength (两个时间的间隔长度/秒) 部分数据 统计这个字段就会出现 "算出运算溢出" 错误,很是头疼,找不出原因 然后 今天又出现了, 然后不断排查,排查,发现是有一条数据导致的, 后来 这条数据删除重新插入就好了, 然后想到唯一动过这条数据的,是执行了rec_recordlength的更新,动作如下: update V_recordlogs set rec_recordlength=86400*(r

根据IP和Mask获得子网地址

unsigned int IPToUInt(const char *pIp) { int a,b,c,d; unsigned int addr=0; if( sscanf(pIp,"%d.%d.%d.%d",&a,&b,&c,&d)!=4 ) return 0; addr=a<<24; addr|=b<<16; addr|=c<<8; addr|=d; return addr; } char* pIp,char *pM

Java中用最有效率的方法算出2 乘以8 等於几?

Java中用最有效率的方法算出2 乘以8 等於几?2 << 3,因为将一个数左移n 位,就相当于乘以了2 的n 次方,那么,一个数乘以8 只要将其左移3 位即可,而位运算cpu 直接支持的,效率最高,所以,2 乘以8 等於几的最效率的方法是2 << 3.

【BioCode】删除未算出PSSM与SS的蛋白质序列

代码说明: 由于一些原因(氨基酸序列过长),没有算出PSSM与SS,按照整理出来的未算出特征的文件,删除原来的蛋白质序列: 需删除的氨基酸文件732.txt(共732条氨基酸): 删除前 氨基酸共25103*2=50206列 删除后 氨基酸共50206-732*2=48742列 代码如下: #include<stdio.h> #include<stdlib.h> #include<iostream> #include<string.h> #include&l