首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在DataInput的javadoc中,“位6-0”或“位10-6”是什么意思?

在DataInput的javadoc中,“位6-0”或“位10-6”是什么意思?
EN

Stack Overflow用户
提问于 2021-03-05 07:22:42
回答 3查看 146关注 0票数 0

当阅读DataInput的javadoc,特别是在“修改的UTF-8”部分。时。我遇到三个表,分别是"0位6-0“,”10-6位“,.,”10位5-0“。

我是一个Java新手,所以它看起来像减法,不确定,但是如果是这样的话,我们把它加到1和0中,它会变成7位。据我所知,一个字节由8位组成。

这些"0位6-0.“卑劣?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-03-05 07:31:14

javadoc告诉您每个字节是如何划分的。

将每个字节视为由8个单独元素(位)组成的向量。

第一个块只有一个字节,以及相应的可能的位值。

代码语言:javascript
运行
复制
byte 1

bit number 7 6 5 4 3 2 1 0
bit value  0 ? ? ? ? ? ? ? <-- bits 6 - 0

这意味着,对于以一个字节编码的字符,前导位始终为0。这些是从\u0001\u007F的字符。

第二个块有两个字节,变得更复杂一些。

代码语言:javascript
运行
复制
byte 1                       byte 2

bit number 15 14 13 12 11 10 9 8 | 7 6 5 4 3 2 1 0
bit value   1  1  0  ?  ?  ? ? ? | 1 0 ? ? ? ? ? ?
                          ^                 ^
                          |                 |
                   bits 10 to 6 of       bits 5 to 0 of
                 the utf-8 codepoint    the utf-8 codepoint

这些字符在从\u0080\u07FF的范围内

例如,在这个范围内的符号是变符号(微符号)。

在普通unicode中,字节是11000010 10110101

看看这个字符,看看它是如何与两个字节字符的位对齐的。你有

代码语言:javascript
运行
复制
15 14 13 12 11 10 9 8    7 6 5 4 3 2 1 0
 1  1  0  0  0  0 1 0    1 0 1 1 0 1 0 1

Bits 10-6 ------*-*-*----*-* ^-^-^-^-^-^----bits 5-0

你的下场是

代码语言:javascript
运行
复制
byte 1                       byte 2

bit number 15 14 13 12 11 10 9 8 | 7 6 5 4 3 2 1 0
bit value   1  1  0  -  -  0 1 0 | 1 0 1 1 0 1 0 1

其中,字节11和12将为0,但我在其中放了一个-,只是为了显示它们的意义。

对不起,我希望它能帮上忙。

票数 3
EN

Stack Overflow用户

发布于 2021-03-05 07:33:24

它显示了比特的范围。位被编号,最低的,最小的位有索引0,下一个位有索引1,下一个位有索引2等等。例如,数字13有二进制表示1101。这意味着位数0有值1,位数1有值0,位数2和3有值1。因此,例如,在文档中,"0位6-0“意味着字节中的最高位必须为零,而索引从6到0的低位则被您的数字占用。

票数 0
EN

Stack Overflow用户

发布于 2021-03-05 07:39:04

该表讨论了如何在修改后的UTF8编码中表示字符。我将以这个部分为例:

空字符'\u0000‘和范围'\u0080’到'\u07FF‘中的字符由一对字节表示。

注意,您可以使用11位来表示这些数字。用11位表示的最大数字是2^11-1= 2047 = 7FF。让我们将这11位位编号为0到10,所以位-10是最重要的位,位-0是最小的位。

该表告诉您,在修改后的UTF8编码中,这些数字编码的字符用2个字节表示。

第一个字节以比特110 (这三个比特是固定的)开始,然后是我们试图表示的数字的位-10、位-9、位-8、位-7、位-6。

第二个字节以位10开头(这两个位是固定的),后面跟着数字的位-5、位-4、位-3、位-2、位-1、位-0.

简而言之,“位10-6”指的是“位10 6",它不是4位,而是5位。

我鼓励您将此与正常的UTF8编码进行比较,以了解两者之间的差异。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66488360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档