如果整数的最高有效位为零,这意味着什么?
What does it mean if the most significant bit of an integer is zero?
在阅读WebSocket protocol standard时,我看到了下面这段话:
The length of the "Payload data", in bytes: if 0-125, that is the payload length. If 126, the following 2 bytes interpreted as a 16-bit unsigned integer are the payload length. If 127, the following 8 bytes interpreted as a 64-bit unsigned integer (the most significant bit MUST be 0) are the payload length. Multibyte length quantities are expressed in network byte order.
我有两个问题:
- “最高位必须为0”是什么意思?我的理解是 1 比 0 更重要,因此最高有效位为 0 的唯一数字就是 0 本身。显然,这是不对的。这到底是什么意思?
- “多字节长度数量以网络字节顺序表示”是什么意思?我假设这是说 2 字节和 8 字节的有效负载长度以网络字节顺序表示,但是 是什么 网络字节顺序?
Most significant bit是指位序列中表示一个数的最大位值位置的位。考虑一个四位序列。在这里,如果您将最高有效位限制为 0,则生成的 4 位数字将类似于 0XXX
,其中每个 X
可以是 0 或 1。
在上面的文档中,当你有一个较长的负载长度需要超过2个字节(16位)来表达时,负载长度字段被标记为127。在这种情况下,payload字段中的127(或1111111
),并不表示长度,而是作为一个标志来表示后面的8个字节都是有效载荷字段的一部分。这表明这八个字节中的最高有效位必须为 0。这意味着有效载荷字段中最左边的位必须设置为 0(即帧中的第 16 位)。
Network Byte Order是指大端编码系统,用于网络传输。
在阅读WebSocket protocol standard时,我看到了下面这段话:
The length of the "Payload data", in bytes: if 0-125, that is the payload length. If 126, the following 2 bytes interpreted as a 16-bit unsigned integer are the payload length. If 127, the following 8 bytes interpreted as a 64-bit unsigned integer (the most significant bit MUST be 0) are the payload length. Multibyte length quantities are expressed in network byte order.
我有两个问题:
- “最高位必须为0”是什么意思?我的理解是 1 比 0 更重要,因此最高有效位为 0 的唯一数字就是 0 本身。显然,这是不对的。这到底是什么意思?
- “多字节长度数量以网络字节顺序表示”是什么意思?我假设这是说 2 字节和 8 字节的有效负载长度以网络字节顺序表示,但是 是什么 网络字节顺序?
Most significant bit是指位序列中表示一个数的最大位值位置的位。考虑一个四位序列。在这里,如果您将最高有效位限制为 0,则生成的 4 位数字将类似于 0XXX
,其中每个 X
可以是 0 或 1。
在上面的文档中,当你有一个较长的负载长度需要超过2个字节(16位)来表达时,负载长度字段被标记为127。在这种情况下,payload字段中的127(或1111111
),并不表示长度,而是作为一个标志来表示后面的8个字节都是有效载荷字段的一部分。这表明这八个字节中的最高有效位必须为 0。这意味着有效载荷字段中最左边的位必须设置为 0(即帧中的第 16 位)。
Network Byte Order是指大端编码系统,用于网络传输。