计算机IP为什么只有255,为什么电脑IP地址最大值是255?

一、为什么电脑IP地址最大值是255?

目前我们常用的IP地址叫IPV4地址,如IP地址:192.168.1.1

它是4个字节(Byte)的数据,在计算机中

1个字节(Byte)=8个二进制位(bit)

所以一个IP地址共有4×8=32个二进制位,通常被分割为4组,每组有8个二进制位,而1个二制数据位只能有0和1两种状态,

1个二进制位可以表示:0、1,共2^1个数;

2个二进制位可以表示:00、01、10、11,共2^2个数;

3个二进制位可以表示:000、001、010、011、100、101、110、111,共2^3个数 ;

以此类推。。。

8个二进制位一共可以表示2^8=256个数,即0~255。

所以在IP地址中每组的最大值是255,但是在实际使用中还要去掉两个特殊的地址:网络地址和广播地址。

网络地址是用来标识网络的地址,相当于一个网络的名字,广播地址是专门用于同时向网络中所有工作站进行发送的一个地址。

如在家用路由器中默认192.168.1.0即是网络地址,192.168.1.255是广播地址,除此之外192.168.1.1~192.168.1.254可以自由分配给网络内的设备使用。

e315b2cca275

二、为什么网络下载速度太慢?

有个朋友问我为什么办理的20M光纤下载速度却只有2M多,难道办了个假光纤?

其实问题关键在于用的计算单位不同,很多朋友常常混淆两个单位的区别。

电脑上下载工具一般用的单位是MB(兆字节),网络带宽的单位是一般是Mbit(兆位),换算关系是1B=8bit。

所以1M带宽理论速度=1Mbit/s=1024 Kbit/s=128 KByte/s,20M带宽的理论下载速度为2.5MB,再考虑到网络线路因素的影响,达到2MB左右就是正常的下载速度。

三、为什么我买的硬盘实际可用容量小于标称的容量?

很多朋友自己的移动硬盘实际容量并没有厂商标注的容量大,这是怎么回事呢?难道是被坑了,其实对于此种情况,主要原因是换算方式的不同。

对于存储设备容量的计算,计算机和厂商的计算方式是不同的,在计算机中1GB=1024MB,而硬盘厂家通常是按照1GB=1000MB进行换算的,这就导致二者存在差异。

以120GB的硬盘为例,实际可用容量大约有114GB。

厂商计算方法:120GB=120,000MB=120,000,000KB=120,000,000,000B;

计算机的计算方法:120,000,000,000B/1024=117,187,500KB/1024=114,440.91796875MB=114GB

在优盘上也有这种差异,并且在存储设备容量越大时就会越明显,例如2TB的硬盘,实际可用容量大约有1862.64G。

e315b2cca275

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
代码如下: ```python import re def parse_ip(ip_mask): ip, mask = ip_mask.split('~') # 检查IP地址和子网掩码是否合法 if not re.match(r'^(\d{1,3}\.){3}\d{1,3}$', ip) or not re.match(r'^(\d{1,3}\.){3}\d{1,3}$', mask): return 'error' ip_nums = list(map(int, ip.split('.'))) mask_nums = list(map(int, mask.split('.'))) # 检查子网掩码是否合法 if mask_nums != sorted(mask_nums, reverse=True): return 'error' # 判断是私有IP还是公有IP if ip_nums[0] == 10 or (ip_nums[0] == 172 and 16 <= ip_nums[1] <= 31) or (ip_nums[0] == 192 and ip_nums[1] == 168): return 'private' # 判断是A/B/C/D/E类IP还是非法IP if 1 <= ip_nums[0] <= 126: return 'A' elif 128 <= ip_nums[0] <= 191: return 'B' elif 192 <= ip_nums[0] <= 223: return 'C' elif 224 <= ip_nums[0] <= 239: return 'D' elif 240 <= ip_nums[0] <= 255: return 'E' else: return 'error' result = {'A': 0, 'B': 0, 'C': 0, 'D': 0, 'E': 0, 'error': 0, 'private': 0} while True: try: ip_mask = input() ip_type = parse_ip(ip_mask) result[ip_type] += 1 except: break print(result['A'], result['B'], result['C'], result['D'], result['E'], result['error'], result['private']) ``` 对于每个输入的IP地址和掩码,我们先检查它们是否合法。如果不合法,则返回错误。 之后,我们解析IP地址和掩码,判断是私有IP还是公有IP,以及属于哪一类 IP 地址,以便将其归类。我们使用一个字典来记录每种类型 IP 地址的数量。 最后,输出每种类型 IP 地址的数量即可。 需要注意的一点是,输入可能有多行,因此我们需要在输入结束时退出循环。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值