如何解决整数转数组说明
请帮忙
我知道您正在阅读本文,如果没有答案,我将不胜感激,因为我觉得只有我一个人在努力解决这个问题。
这是如何工作的?
我已彻底阅读this document。它提到了一个名为 TimestampScale 的元素。我已经下载了大约 30 个 WebM 示例文件,并看到 HEX { 0x2AD7B1
或 2A
D7
B1
或 {{1} 后面的值} } 或 NON-HEX 整数 { ['2A','D7','B1']
42
215
或 177
} 始终相同:HEX { [42,215,177]
或 0x830F4240
83
0F
42
或 40
} 或 非十六进制整数 { {{1 }} ['83','0F','42','40']
131
15
或 66
}。这些值都应该是 64
的默认值,如 Matroska 元素规范中所述。所以问题是……[131,15,66,64]
是如何变成 1000000
的?
上面的Incase对你来说太草率了或者你想要更多的解释:
0x830F4240
所有值如何以十六进制和整数显示:
1000000
目标:
目标是弄清楚如何将值转换为 The TimestampScale identifier is equal to 0x2AD7B1. This is in Hexadecimal formatting.
The ways I format it in HEX are:
0x2AD7B1
2A D7 B1
['2A','B1']
The ways I format it in Integers are:
42 215 177
[42,177]
Its preceding values are taken from a Uint8Array: | 131,64 |
after the Hexadecimal values are taken. This is NOT in Hexadecimal formatting.
The reason why is because that is the raw data and I want to be
as open with you as possible.
The ways I format it in HEX are:
0x830F4240
83 0F 42 40
['83','40']
The ways I format it in Integers are:
131 15 66 64
[131,64]
So question is: how does | 131,64 | or 0x830F4240 equal 1000000?
,这样我就可以在 Matroska 元素规范中的其他元素上使用这种转换(例如持续时间转换)。
解决方法
WebM 容器格式是 Matroska 容器格式的子集。
Matroska 基于 EBML (Extensible Binary Meta Language)。
EBML 文档由元素组成。
元素由元素 ID、元素数据大小和元素数据组成。
元素数据大小是一个可变大小的整数。 (元素 ID 也是可变大小的整数。)
可变大小整数使用如下所示的位模式类型,其中前导位表示使用了多少字节,x
位存储实际值。
- 1 字节:
1xxxxxxx
- 2 字节:
01xxxxxx xxxxxxxx
- 3 字节:
001xxxxx xxxxxxxx xxxxxxxx
- 4 字节:
0001xxxx xxxxxxxx xxxxxxxx xxxxxxxx
等等
你提到的 TimestampScale 元素是由
- 元素 ID
2A D7 B1
- 元素数据大小
83
(一个 1 字节的可变大小整数,表示后面有 3 个字节的元素数据) - 元素数据
0F 42 40
(十进制 1000000 的大端编码)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。