广播地址的计算方法(与运算、或运算)

目录

    • 我的学习过程
    • Python中逻辑运算符
      • not
      • and
      • or
    • 位运算符
      • 取反(~)
      • 与(&)
      • 或(|)
    • 广播地址计算方法
      • IP地址
      • 子网掩码
      • 网络地址
      • 广播地址
        • 广播地址计算举例

我的学习过程

今天学习UDP的单播、多播、广播中,出现了广播地址的计算。这个涉及到十进制转二进制,位运算等概念。位运算按位取反、与、或让我想起了之前python中的逻辑运算符not、and、or。正好可以再回忆一遍。它们是否类似道理呢?

Python中逻辑运算符

在Python中,逻辑运算符与其他运算符相比,它的优先级最低,其次是成员运算符in/not in。

not

not 表达式

结果:结果的值只有True或者False。取not后表达式的相反值。表达式较长时注意加括号。

and

表达式1 and 表达式2 and 表达式3

表达式1的值:0,空串,或者False,或者其他数值。
表达式2,3同理。

结果:从左往右寻找,取第一个0或者空串或者False;若没有0,空串和False,则取最后一个表达式的值。

or

表达式1 or 表达式2 or 表达式3

表达式1的值:0,空串,或者False,或者其他数值。
表达式2,3同理。

结果:从左往右寻找,取第一个不是0或者空串或者False;若全是0,空串或False,则取最后一个表达式的值。

位运算符

取反(~)

~二进制数

取反操作:1取反成0,0取反成1,形成新的二进制数字串。

与(&)

二进制数1 & 二进制数2

使两个二进制数从末尾开始逐个对齐,长度短的,在开头补0对齐。

与操作:两个对齐的数均为1时取成1,其余取0。
例如:10001010&101011结果
10001010
00101011
结果:
00001010

或(|)

二进制数1 | 二进制数2

使两个二进制数从末尾开始逐个对齐,长度短的,在开头补0对齐。

或操作:两个对齐的数均为0时取成0,其余取1。
例如:10001010&101011结果
10001010
00101011
结果:
10101011

我的思考:
与和或,与python中的and和or有共通之处,与的两边都是1,结果才为1,python中and得两边都是true(或者1),结果才为True(或者1)。或同理。

广播地址计算方法

IP地址

引用百度百科
IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

IP地址是网络协议地址。有IPv4和IPv6两种。IPv4转IPv6可行,而IPv6转IPv4不一定可行。

IPv4:
由32位二进制数组成。
形式:XXX.XXX.XXX.XXX
例如:
1.1.1.1 直接广播地址
255.255.255.255 受限广播地址

IPv6:
一般由32个十六进制数组成。总共有128位长。
两个逻辑部分组成:

  1. 一个64位的网络前缀
  2. 一个64位的主机地址(叫EUI-64,根据物理地址自动生成)

子网掩码

引用百度百科
子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。

网络地址

引用百度百科
网络地址(Network address)则是互联网上的节点在网络中具有的逻辑地址,可对节点进行寻址。

网络地址 = IP地址&子网掩码
注意:需要转成二进制数计算,计算结果再转十进制数。

广播地址

我的理解:
广播地址指一个工作站同时向网络中所有工作站发送信息的一个特定的地址。

广播地址 = 网络地址 | (~子网掩码)
注意:需要转成二进制数计算,计算结果再转十进制数。

广播地址计算举例

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/549211.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Wt::WTreeNode

2019独角兽企业重金招聘Python工程师标准>>> A single node in a tree. 〔 这个 widget 渲染的是一棵树的一个节点。〕 A tree list is constructed by combining several tree node objects in a tree hierarchy, by passing the parent tree node as the last arg…

匿名内部类探究——它是一个实例

目录我的学习过程匿名内部类概述匿名内部类探究代码验证(匿名内部类是一个实例)结论我的学习过程 昨天想学习一下Java8新特性,看到Lambda表达式可以替代匿名内部类。我对匿名内部类不太理解,决定学习一下。并进行了下面的归纳和思…

利用SQL查找表中的质数(prime number)和完全数(perfect number)以及几个有趣的SQL语句...

之前在某次interview中被老外问到如何用SQL找出列上的质数和完全数的问题;我当时已经多年没有写过这种考算法和SQL技巧(纯粹的技巧)的语句了,乍遇此问题倒是有些棘手。现在录以记之,供人参考. SQL> create table numbers(NO int) ;表已创建…

Lambda表达式及应用

目录Lambda表达式概念应用在forEach()方法使用用来替代匿名内部类代码验证(Lambda表达式替代匿名内部类)Lambda表达式 概念 语法形式: () -> {} 组成: 括号:表示参数列表;箭头:表示lambda…

UrlRewriter 伪url的配置

UrlRewriter 是微软封装好了的一个URL重写组件。使用它可以让我节约很多自已开发的时间。 好了,开始讲述我的应用经验,这只是很菜鸟的经验,高手就不用看了。 第一步,请从此下载此组件。解压,把UrlRewriter.dll copy到你…

网络地址和广播地址的快速计算方法

目录前提条件方法原理网络地址快速计算示例广播地址快速计算示例前提条件 由IP地址和子网掩码,快速计算网络地址和广播地址。 小窍门前提:当子网掩码组成只有255和0组成时。 方法原理 利用255(或者0)和其他数字的&&#xf…

职场提醒:面试失败n次以后

投了一份简历,是中国一个很有名的医药公司的职位。面试后对方回复说,我不符合他们的要求。之前也参加过很多公司面试,结果都是说我经验不足。一次次的失败也让我对自己有了新的认识,也不断的刺激我。发现一个工作经验不足的人&…

关于list遍历时sychronizedList方法和synchronized同步块的线程安全问题思考

目录我的难点sychronizedList方法无法解决List遍历时线程不安全问题sychronizd同步块为什么可以解决List遍历时线程不安全问题我的思考过程我的难点 sychronizedList方法无法解决List遍历时线程不安全问题 关于慕课网的socket课程学习中,qiujuer老师在课程中讲到&…

WinCE CEDDK之DMA相关函数

CEDDK提供了DMA的相关函数,在CEDDK/DDK_DMA/ddk_dma.c中定义。实际上里面最有用的就两个函数,HalAllocateCommonBuffer(..)和HalFreeCommonBuffer(..)分别用于为DMA申请和释放 首先介绍一下会用到的DMA适配器结构,在ceddk.h中定义,如下: type…

Navicat中无法自定义标量值函数的问题

目录自定义标量函数代码自定义函数无法创建问题自定义标量函数代码 我的思路:我要创建一个自定义标量函数。使用软件:navicat12.1版本。点击Fx图标进行创建。代码中,使用num作为入参,根据num的大小返回颜色。num大于0返回白色&am…

把十六进制字符转换成十进制数

2019独角兽企业重金招聘Python工程师标准>>> /*** Get the hex value of a character (base16).* param c A character between 0 and 9 or between A and F or* between a and f.* return An int between 0 and 15, or -1 if c was not a hex digit.*/public stat…

明白90/10的原理吗?

什么是90/10原理?即在您的一生中,只有10的事情您无能为力,而90的事情都在您的把握之中。 我们无法阻止汽车老化出故障,我们无法预料飞机晚点,我们的行程可能被司机耽误在路上,等等,这些都是我们…

SQL Server更新某一列中多个字典码对应内容(sql示例)

目录示例-查询出多个字典码对应的内容示例-替换多个字典码对应的内容说明CHARINDEXFOR XML PATH示例-查询出多个字典码对应的内容 建立表格:学生-学习科目表student_study 注意:科目kemu列内容是字典码,需要更换成对应内容。 建立表格&…

DirectX支配游戏!历代GPU架构全解析

http://tech.163.com/digi/10/0430/08/65GM21CJ001618J7.html转载于:https://www.cnblogs.com/qilinzi/archive/2010/06/23/1940494.html

mybatisPlus中的field-strategy(字段更新插入策略):null值插入和更新问题

目录mybatisPlus中null值插入和更新问题实际项目解决方法示例一实际项目解决方法示例二field-strategy字段更新插入策略介绍枚举类FieldStrategy源码枚举类字段简介mybatisPlus中null值插入和更新问题 配置mybatisPlus的项目中,默认进行了不是全量更新的策略&#…

javascript变量声明语法的应用和分号讲究适用性

变量声明语法:var变量名,通常应用在语句的代码当中。在语句ECMAScript中必须与关键字var变量名之间至少有一个空格。(也就是变量名需要遵守一定的规范,至少不应该出现中文;如出现中文那就使语法中的语句代码不能相应连接到有关系地对数据处理…

SQL Server和MysQL中的联表更新sql示例

目录需求说明SQL Server中联表更新sql示例MySQL中联表更新sql示例需求说明 需求说明:把表B的报名号数据,更新到另一张表A的报名号列。通过表A证件号码和表B身份证号相等。 SQL Server中联表更新sql示例 UPDATE a SET a.bmhb.bmh FROM A aINNER J…

Mybatis中(#{ })模糊查询like(使用oracle的concat函数嵌套拼接SQL)

需求: 模糊查询需要左右各拼接一个’%’,如:like %key% 。 项目情况: mybatis中动态传参一般采用占位符#{key}。使用数据库:orecle。 错误的尝试: 尝试使用: like % #{key} %这样写不起作用…

linux构建主从域名服务器

实验步骤:一、构建主域名服务器1、安装域名服务(BIND服务器软件包)BIND软件包是目前Linux下使用最广泛的DNS服务器安装包,它可以运行到大多数UNIX服务器中,也包括Linux系统。RHEL4默认没有安装BIND服务器软件包&#x…

HashMap的put方法(Java7)和putVal方法(Java8)

目录数组链表:存在性能最坏情况O(n)Java7的HashMap的put方法思路数组链表红黑树:性能提高到O(logn)Java8的HashMap的putVal方法思路数组链表:存在性能最坏情况O(n) Java8以前,HashMap底层数据结构采用数组链表的结构。 数组特点&…