网络端口号;为什么 16 位有 65535,而不是 65536?

网络工程 网络
2022-02-15 00:29:46

根据https://en.wikipedia.org/wiki/Port_(computer_networking)

端口号是一个 16 位无符号整数,因此范围从 0 到 65535

我假设 16 位等于 16 的 2 次方(如果我错了,请纠正我)。

但是,16 的 2 次方等于 65536,而不是 65535。

我可以知道如何为此执行计算吗?

1个回答

端口号是以 2 为基数的位表示。 16 的 2 次方等于 65536:它是 16 位可以创建的以 2 为基数的数字的数量,数字 65536 不代表可以创建的最后一个数字以 2 为底,16 位
以 2 为底,
第一个数字是 0000,0000,0000,0000,以 10 为
底,第二个数字是 0000,0000,0000,0001,以 10 为底,
第三个数字是 0000,0000,0000 ,0010,以 10 为底数为 2
第四个数字为 0000,0000,0000,0011,以 10 为底数为 3
...
第 65536 个数字为 1111,1111,1111,1111,以 10 为底数为 65535

因此最后一个端口是 65535 而不是 65536