网络层:IP协议详解(IP协议真的得看这篇)

1、IP协议概念

IP(Internet Protocol , 互联网协议)主要用于互联网通信。IP协议用于将多个包交换网络连接起来,他在原地址和目的地址之间传输数据报,还提供对数据大小的重新组装功能,以适应不同网络的要求。

IP协议是TCP/IP协议族的核心协议,最常用的IP协议的版本号是4,即IPV4 ,它的下一个版本就是 IPV6。

2、IP协议报文格式

IP协议报文

(1)版本 占4位,指IP协议的版本。通信双方使用的IP协议版本必须一致。目前广泛使用的IP协议版本号为4(即IPv4)。关于IPv6,目前还处于草案阶段。

(2)首部长度 占4位,可表示的最大十进制数值是15。请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到60字节。当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。因此数据部分永远在4字节的整数倍开始,这样在实现IP协议时较为方便。首部长度限制为60字节的缺点是有时可能不够用。但这样做是希望用户尽量减少开销。最常用的首部长度就是20字节(即首部长度为0101),这时不使用任何选项。

(3)区分服务 占8位,用来获得更好的服务。这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。1998年IETF把这个字段改名为区分服务DS(Differentiated Services)。只有在使用区分服务时,这个字段才起作用。

(4)总长度 总长度指首部和数据之和的长度,单位为字节。总长度字段为16位,因此数据报的最大长度为216-1=65535字节。
在IP层下面的每一种数据链路层都有自己的帧格式,其中包括帧格式中的数据字段的最大长度,这称为最大传送单元MTU(Maximum Transfer Unit)。当一个数据报封装成链路层的帧时,此数据报的总长度(即首部加上数据部分)一定不能超过下面的数据链路层的MTU值。

(5)标识(identification) 占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识”并不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。

(6)标志(flag) 占3位,但目前只有2位有意义。
● 标志字段中的最低位记为MF(More Fragment)。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个
● 标志字段中间的一位记为DF(Don’t Fragment),意思是“不能分片”。只有当DF=0时才允许分片。

(7)片偏移 占13位。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。这就是说,每个分片的长度一定是8字节(64位)的整数倍。

(8)生存时间 占8位,生存时间字段常用的的英文缩写是TTL(Time To Live),表明是数据报在网络中的寿命。由发出数据报的源点设置这个字段。其目的是防止无法交付的数据报无限制地在因特网中兜圈子,因而白白消耗网络资源。最初的设计是以秒作为TTL的单位。每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。若数据报在路由器消耗的时间小于1秒,就把TTL值减1。当TTL值为0时,就丢弃这个数据报。

(9)协议 占8位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。

(10)首部检验和 占16位。当收到一份IP数据包后,同样对首部的每个16位进行反码求和。由于接收方在计算过程中包含了发送发在首部中的校验和,如果传输过程中没有差错,计算结果应全为1,不是全1,即检验和错误,那么就丢弃收到的数据报,但不生成差错报文,由上层发现丢失的数据报并进行重传。这个字段只检验数据报的首部,但不包括数据部分。这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和(一些字段,如生存时间、标志、片偏移等都可能发生变化)。不检验数据部分可减少计算的工作量。

3、IP地址

IP地址标识着网络中一个系统的位置。每个IP地址都是由两部分组成:网络号和主机号。网络号标识一个物理的网络,同一个网络上所有的主机需要同一个网络号,该号在整个互联网是唯一的;主机号是网络中的一个工作端、服务器、路由器其他TCP/IP主机。对于一个网络号来说主机号是唯一的。每个TCP/IP主机由一个逻辑IP地址确定。

IP地址有两种表示方法:二进制表示、点分十进制表示。
每个IP地址为4个字节,由4个8位域组成,称之为8位体。

IP地址的编址方式共经过了三个历史阶段。这三个阶段是:

分类的IP地址。最基本的编址方式。

子网的划分。对最基本的编址方式的改进。

构造超网。比较新的无分类编址方法。

IP地址

1>. A类地址( 0.0.0.0 - 127.255.255.255 )以”0”头,网络段长度为8位,其中可变部分的长度为7位;主机段长度为24位。7位的可变网络段可识别2^7=128 (0~127)个网络,其中0和127另有用途,故只有126个可用的A类网络地址。另外,主机位全”0”代表网络本身,全”1”代表网内广播,因此一个A类网络地址可识别的可分配地址有 2^24-2 个。

2>. B类地址( 128.0.0.0 - 191.255.255.255 )以”10”开头,网络段长度为16位,可变部分的长度为14位;主机段长度为16位。14位的可变网络段可以识别的网络数为 2^14 个。另外,主机位全”0”与全”1”功能同A类地址,因此一个B类网络可以分配地址有 2^16-2 个。

3>. C类地址( 192.0.0.0 - 223.255.255.255 )以”110”开头,网络段长度为24位,其中可变部分的长度为21位;主机段长度为8位。21位的可变网络段可以识别的网络数为 2^21 个。可分配的主机地址是 2^8-2 个。

4>. D类地址( 224.0.0.0 - 239.255.255.255 )为组播地址,使用”1110”开头,不分网络段和主机段,有 2^28 个组播地址。用于标识预先定义的一组主机。主机使用组播通信时,可以将组播数据报一次性发送给所有同组的主机。

5>. E类地址( 240.0.0.0 - 255.255.255.255 )是保留地址,用于研究使用。以”1111”开头,不区分网络段和主机段,其中32位全1代表本网络内广播,因此E类地址共有 2^28-1 个。

私有IP地址和特殊IP地址

根据用途和安全性级别的不同,IP地址还可以大致分为两类:公共地址和私有地址。公用地址在Internet中使用,可以在Internet中随意访问。

一个机构网络要连入Internet,必须申请公用IP地址。但是考虑到网络安全和内部实验等特殊情况,在IP地址中专门保留了三个区域作为私有地址,其地址范围如下:

A类:10.0.0.0/8(子网掩码表示) 10.0.0.0-10.255.255.255
B类:172.16.0.0/12 172.16.0.0-172.31.255.255
C类:192.168.0.0/16 192.168.0.0-192.168.255.255

使用保留地址的网络只能在内部进行通信,而不能与其他网络互连。因为本网络中的保留地址同样也可能被其它网络使用,如果进行网络互连,那么寻找路由时就会因为地址的不唯一而出现问题。但是这些使用保留地址的网络可以通过将本网络内的保留地址翻译转换(NAT)成公共地址的方式实现与外部网络的互连。这也是保证网络安全的重要方法之一。

特殊IP地址

注:127(即01111111)保留作用本地软件环回测试(loopback test)本主机的进程之间的通信之用。若主机发送一个目的地址为环回地址(例如:127.0.0.1)的IP数据报,则本主机中的协议软件就处理数据报中的数据,而不会把数据报发送给任何网络。目的地址为环回地址的IP数据报永远不会出现在任何网络上,因为网络号为127的地址根本不是一个网络地址。

网络号为0,如主机使用BOOTP协议确定本机IP地址时只能作为初始化过程中的源地址出现。

4、子网划分

1、子网划分的意义

组织不同物理媒体的使用、地址空间的保存、控制网络流量、安全性等因素。

2、子网掩码

RFC950 定义了子网掩码的使用。子网掩码是32位二进制数,其对应网络地址的位都是1,对应主机位置的都是0。

A类网络的默认子网掩码为255.0.0.0,B类网络的默认子网掩码为255.255.0.0,C类网络的默认子网掩码为255.255.255.0

子网掩码告诉路由器,地址哪一部分是网络地址,哪一部分是主机地址,是路由器正确判断任意IP地址是否是本网段的,从而进行正确的路由。

子网掩码

3、子网划分

知识点:
A类地址 0.0.0.0 ~127.255.255.255
B类地址 128.0.0.0 ~ 191.255.255.255
C类地址 192.0.0.0 ~ 223.255.255.255

A类私有地址 10.0.0.0 ~ 10.255.255.255
B类私有地址 172.16.0.0 ~ 172.31.255.255
C类私有地址 192.168.0.0 ~ 192.168.255.255

私有IP地址

CIDR(无类别域间路由,Classless Inter-Domain Routing)。CIDR最大的特点是用斜杠(/)来表示子网掩码,指出了子网掩码中有多少位1。这种表示方法我们经常在运营商给我的IP地址中看到,我们经常需要根据这种表示方法算出我们的可用IP地址是哪些。

假如电信给了我们这段地址61.168.1.32/28,我们可用的IP地址是多少呢?这个问题我们先不回答,等后面详细讲解子网划分自后再回头来看。

A类网络默认子网掩码是255.0.0.0,用CIDR表示为/8
B类网络默认子网掩码为255.255.0.0.0,用CIDR表示为/16
C类网络默认子网掩码为255.255.255.0,用CIDR表示为/24

看到这里,大家知道了吧,/8表示占用8位1,即占用一个字节,/16表示占用16位1,即2字节,/24占用24位1,即占用3字节,大家记住这个默认规则,是后面学习子网划分以及以后心算子网划分的重要技巧。
举例,子网掩码255.255.255.128,用CIDR表示是多少呢?首先这是个C类网络地址,前面三个字节都是255,转换成二进制都为1,即11111111.11111111.11111111,即24位1。128转换成二进制位10000000,即1占用了一位。整个子网掩码占用了25位1,所以用CIDR表示为/25,即255.255.255.128(/25),假如IP段为192.168.1.0,用CIDR表示则为192.168.1.0/25。

再举例,192.168.1.0,255.255.255.192,用CIDR表示?首先判断出是C类网络,前面占用了3字节(24位)1,192换算成二进制位11000000,占用了2位1,总共是26位1.所以CIDR表示为192.168.1.0/26。

子网划分的要点:
1、需要划分成多少个网络(子网)?
假如要划分4个网络,则2X=4,X=2、要划分8个网络,则2X=8,X=3,现在知道为什么要先搞懂2的幂了吧,这里X就是=2的幂值。
那么X代表什么意思呢?X就是取值多少位1,如11000000,就是借2位,即X=2,反推知道一个字节(8位)如果为11000000,则表示可以划分4个网络(22=4);如果为11110000,则表示借4位,可以划分16个网络(24=16)。

2、每个网络需要多少个IP?
计算公式:2^y-2,y代表取值多少位0,如11111000,代表取值3位0,即y=3,得出2^3=8-2=6,即每个网络可用的IP数量是6个。
假如每个网络需要60台主机的IP,那么如何计算呢?即2^y≥60,根据2的幂算法得出,2^6=64-2=62,所有y的值为6。

3、有哪些子网网络(块大小)?
计算公式:256-子网掩码。假如子网掩码为255.255.255.192,则块大小为256-192=64,即块大小为64。从0开始以64为基数不断递增,直到达到子网掩码值,中间的结果即为子网,本例中子网即0、64、128、192。
再举例,加入子网掩码为255.255.255.128,则块大小为256-128=128,即块大小为128,子网0、128。

4、每个子网的子网号和广播地址是多少?
子网号很简单,即子网块值,如掩码为192,则子网块为256-192=64,得出子网为0、64、128、192,即子网号为0、64、128、192。再如掩码为128,则子网为128,则子网好0、128。
广播地址也很简单,总是下一个子网前面的数。如子网号为0、64、128、192、则广播地址为63、127、191。再如子网号为0、128,则广播地址为127.
看到这里大家知道为啥在计算每个网络可用的IP数时,公式里要-2吗?这是因为每个子网号(子网号也是一个IP地址)和广播地址是不能配给主机用的。

5、每个子网的可用(合法)的主机地址是哪些?
规则就是除去每个每个子网的子网号、广播地址,剩下的就是可用的主机地址,如子网号为0、64、128、192,则可用的主机地址为1-62、65-126、129-190,因为0是子网地址,63是广播地址,同样128、192是子网地址,127、191是广播地址。

6、C类网络子网划分
举例,192.168.10.0,255.255.255.224
1、可划分成多少个子网?
根据前面的知识,首先把224转换成二进制,得出为11100000,1占了3位,因此2^3=8,可用划分8个子网。
2、每个子网有多少个可用的IP?
这里看0占了5位,因此2^5-2=30,可用IP数为30.
3、有哪些子网网络?
256-224=32,即以32为基数不断递增,直到224,即0、32、64、96、128、160、192、224。即192.168.10.0、192.168.10.32、192.168.10.64、192.168.10.96、192.168.10.128、192.168.10.160、192.168.10.192、192.168.10.224。
4、每个子网网络的广播地址是多少?
每个子网网络的广播地址总是下一个子网前面的数,即31、63、95、127、159、191、223,即192.168.10.31、192.168.10.63、192.168.10.95、192.168.10.127、192.168.10.159、192.168.10.191、192.168.10.223。
5、每个子网的可用地址是哪些?
即减去每个子网的子网地址和广播地址,剩下的就是可用地址。本例中的可用地址为1-30、33-62、65-94、129-158、161-190、193-222。

再举例,192.168.10.0/30
1、可划分成多少个子网?
因为CIDR表示的子网掩码,首先得算出占用了多少位1,即30-24(因为是C类网络,前面三个字节都是255,即8位1,共24位1)=6,即6位1。所以2^6=64,即64个子网。
2、每个子网有多少个可用的IP?
因为1位占了6个,0位只有2个了,得出22-2=2,所以是2个可用IP地址。
3、有哪些子网网络?
因为1位占了6个,所以得出21+22+23+24+25+26=252,即256=252=4,得出块大小为4,子网网络为0、4、8、12、16、……、240、244、248、252,即192.168.10.0、192.168.10.4、192.168.10.8、……192.168.10.248、192.168.10.252.
4、每个子网网络的广播地址是多少?
下一个子网之前的数字,即192.168.10.3、192.168.10.7、192.168.10.11、……、192.168.10.247、192.168.10 .251,你算对了吗。
5、每个子网的可用地址是哪些?
除去子网地址和广播地址就是可用地址,本例中的可用地址为1,2、5,6、……、249,250。
无论是A类、B类、C类网络,在使用子网掩码/30时,每个子网只包含2个主机地址,这种子网掩码只适合用于点到点链路。

7、B类网络子网划分
通过前面的知识我们知道B类地址中,有16位可用的主机地址,这意味着我们可将其中的14位用于子网划分,因为至少要保留2位用于主机编址。
举例,172.17.0.0 255.255.128.0
1、可划分成多少个子网?
首先128转换成二进制位10000000,因为此例是属于B类网络,至少需要保留16位掩码位(16位1)所以此处x=1,得出21=2。答案是可以划分2个子网。
2、每个子网有多少个可用的IP?
这里0位总共占了15位,215-2=32766.
3、有哪些子网网络?
256-128=128,即0.0、128.0,得出172.17.0.0、172.17.128.0
4、每个子网网络的广播地址是多少?
下一个子网之前的数字,172.17.127.255、172.17.255.255.
5、每个子网的可用地址是哪些?
子网0.0第一个可用地址为172.17.0.1,最后一个可用地址为172.17.127.254;子网128.0第一个可用地址为172.17.128.1,最后一个可用地址为172.17.255.254.

再举例,172.17.0.0/20
1、可划分成多少个子网?
因为此例是属于B类网络,至少需要保留16位掩码位(16位1)所以此处x=4,得出24=16。答案是可以划分16个子网。
2、每个子网有多少个可用的IP?
这里1位占了4位,所以这里0位总共占了12位,212-2=4094.
3、有哪些子网网络?
因为1位占了4位,得出24+25+26+27=240。
256-240=16,即0.0、16.0、……、240.0,得出172.17.0.0、172.17.16.0、……、172.17.240.0。
4、每个子网网络的广播地址是多少?
下一个子网之前的数字,172.17.15.255、……、172.17.223.255.
5、每个子网的可用地址是哪些?
子网0.0第一个可用地址为172.17.0.1,最后一个可用地址为172.17.15.254;……。
请自己算出172.16.0.0/24可划分成多少个子网?每个子网可用地址数是多少?正确答案大家可搜索QQ认证网络工程师进群讨论。

A类子网划分与B类、C类子网划分类似。

如果上面还是看不懂没关系:还有大神更详细的例子:

如何划分子网的超经典分析

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

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

相关文章

mysql my.cnf_如何知道mysql的my.cnf位置

你实际上可以让MySQL显示搜索my.cnf(或Windows上的my.ini)的所有位置的列表。 它不是一个SQL命令。 是终端命令,执行:$ mysqld –help –verbose在第一行,你会发现一个消息,列出所有my.cnf位置。 在我的机器上是:Defau…

传输层两大协议:TCP与UDP详解(两者的联系与区别)

一、TCP协议 1、TCP协议报文格式 TCP协议报文格式详解 2、TCP“三次握手”建立连接 位码即tcp标志位,有6种标示: SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急) Sequence number(顺序号码) Ac…

2016-01-17

1.《将来的你,一定会感谢现在拼命地自己》 感觉是一本总结的书,有方向、胸怀、习惯、幸运、内心、浮躁等等,现在有时候还拿出来温故一番。可以拥有。 2.《华为研发》 一本介绍华为的发展史,包括华为的一些故事,最令人印…

方法调方法(委托方式)

具有功能的实现方法&#xff0c;这个方法是一个吧数据插入到数据库然后再插入到listview的方法&#xff0c;使用for循环不断的调用这个方法进行插入&#xff1a; /// <summary>/// 获得Excel的名称和代号/// </summary>private void GetData(string name, string p…

docker二进制安装mysql_Docker搭建MySQL读写分离主从模式 分布式数据库中间件Mycat分库分表应用...

一、MySQL读写分离主从模式1. 下载镜像docker pull mysql当前最新版本&#xff1a;mysql Ver 8.0.19 for Linux on x86_64 (MySQL Community Server - GPL)2. 启动主节点并修改配置文件docker run -it --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD123456 mysql bash修改/…

C++11标准库 - array

std::array是原生数组的封装&#xff0c;它存放于栈上且大小固定&#xff0c;性能也与之相同。在原生数组的基础上&#xff0c;它添加了范围检查&#xff0c;以及其它的STL的相应特性&#xff0c;比如复制、交换、迭代器、查询大小。 按照C11的规范&#xff0c;应该抛弃原生数组…

设计模式之单例模式(C++代码实现)

1、单例模式&#xff1a; 单例模式&#xff1a;用来创建独一无二的&#xff0c;只能够有一个实例的对象。 单例模式的结构是设计模式中最简单的&#xff0c;但是想要完全实现一个线程安全的单例模式还是有很多陷阱的。 2、应用场景&#xff1a; 共享数据或者共享访问点&…

在Controller中使用AOP

转&#xff1a;http://usherlight.iteye.com/blog/1306111 在Controller中使用AOP的问题主要在于如何让Controller能够被检测到。 Controller和其他Spring bean的区别在于:Controller是由mvc定义并在web.xml中的dispatcher中定义的。 解决方法&#xff1a; 1、正确定义Controll…

mysql 6.17_2020 6/17 mysql数据的增删改查

一、增删改数据1、增加数据&#xff1a;-- 插入所有字段。一定依次按顺序插入INSERT INTO student VALUES(1,张三,男,20);-- 插入部分字段INSERT INTO student(id,NAME) VALUES(2,李四);2、修改数据&#xff1a;-- 带条件的修改(推荐使用)UPDATE student SET gender男 WHERE id…

五种I/O模型详解

1. 概念理解 在进行网络编程时&#xff0c;我们常常见到同步(Sync)/异步(Async)&#xff0c;阻塞(Block)/非阻塞(Unblock)四种调用方式&#xff1a; 同步&#xff1a; 所谓同步&#xff0c;就是在发出一个功能调用时&#xff0c;在没有得到结果之前&#xff0c;该调用就不…

回答自己的提问

第一章&#xff1a;概论 问题&#xff1a;看完这章后&#xff0c;了解了一些程序员都知道的名言、推论等&#xff1b;像"程序数据结构算法”、"软件程序软件工程"这些。在1.2.3这节内容上知道软件工程与计算机科学是息息相关的&#xff0c;那么在那么多的计算机…

Tomcat自定义部署

首先&#xff0c;需要把apachetomcat安装目录里面的 bin/ conf/ logs/ webapps/ work/ 都拷贝到自定义WEB应用目录下&#xff0c;比如 /home/app/test.aliyun.com/&#xff0c;这个目录以后就是部署该项目的操作目录&#xff0c;下面用yourdomain来代替。 文件夹部署方式&#…

存储过程 while is null_4.2 串的存储实现(2)

返回目录&#xff1a;Chilan Yu&#xff1a;《数据结构》目录链接​zhuanlan.zhihu.com4.2.2 堆串字符串包括串名与串值两部分&#xff0c;而串值采用堆串存储方式存储&#xff0c;串名用符号表存储。堆串存储方式&#xff1a;这种存储方法以一组地址连续的存储单元存放串的字符…

iOS UIWebView URL拦截

http://www.cocoachina.com/ios/20150626/12161.html 本文译者&#xff1a;candeladiao&#xff0c;原文&#xff1a;URL filtering for UIWebView on the iPhone说明&#xff1a;译者在做app开发时&#xff0c;因为页面的javascript文件比较大导致加载速度很慢&#xff0c;所以…

nginx的upstream目前支持5种方式的分配

nginx的upstream目前支持5种方式的分配1、轮询&#xff08;默认&#xff09;每个请求按时间顺序逐一分配到不同的后端服务器&#xff0c;如果后端服务器down掉&#xff0c;能自动剔除。2、weight指定轮询几率&#xff0c;weight和访问比率成正比&#xff0c;用于后端服务器性能…

1216: 斐波那契数列

From: 合工宣OJ http://xcacm.hfut.edu.cn/problem.php?id1216 时间限制: 1 Sec 内存限制: 128 MB 题目描述 Fibonacci数列&#xff0c;定义如下&#xff1a; f(1)f(2)1 f(n)f(n-1)f(n-2) n>3 计算第n项Fibonacci数值。 输入 输入第一行为一个整数n&#xff08;1<…

高光谱图像pca降维_高光谱图像的数据特性之探讨

图像是获取信息以及探知世界的重要媒介。近年来&#xff0c;传感科技与成像技术实现了跨越式发展&#xff0c;促使图像获取在质与量上均获得了显著提升。在多样化成像手段中&#xff0c;光谱成像技术是成像科技的重要组成部分&#xff0c;是人类借助光这一能量手段探测物质特性…

RequestMapping

转自&#xff1a;http://blog.csdn.net/kobejayandy/article/details/12690041 简介&#xff1a;RequestMappingRequestMapping是一个用来处理请求地址映射的注解&#xff0c;可用于类或方法上。用于类上&#xff0c;表示类中的所有响应请求的方法都是以该地址作为父路径。Requ…

mysql 8.0 yum_CentOS8 安装 MySQL8.0(yum)

1、Mysql 官网下载 RPM 包wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm2、检查是否已安装(强力卸载)for i in $(rpm -qa|grep mysql);do rpm -e $i --nodeps;donerm -rf /var/lib/mysql && rm -rf /etc/my.cnf && rm -rf /usr/…

CASIO 5800P计算器游戏--猜数字游戏

CASIO 5800P 计算器游戏--猜数字游戏原代码我编的计算器小游戏--猜数字游戏 LbI I↙ "xxGUESS NUMBERxx xPROGRAMMER:JCHx ---------------- START>>>>>>>[EXE]"◢ LbI Q↙ "xxxDIFFICULTYxxx[1EASY][2MIDDLE][3HARD]"?→N: N1>G…