1

我目前正在研究 Abstract Syntax Notation One 并阅读ITU-T Recommendation X.690

在第 15 页第 8.3.2 段中,写着:

如果整数值编码的内容八位位组包含多个八位位组,则第一个八位位组的位和第二个八位位组的位 8:

  1. 不都是一;和
  2. 不应全部为零。

注 — 这些规则确保整数值总是以尽可能少的八位组编码。

我知道,对于始终以尽可能少的八位字节编码的整数,第一个八位字节不应为零。

但是那些呢?如果我想使用基本编码规则对值 65408 (1111 1111 1000 0000) 进行编码,我应该怎么做?

4

2 回答 2

1

我知道,对于始终以尽可能少的八位字节编码的整数,第一个八位字节不应为零。

不必要。如果整数的最高位设置为 1,则该值被视为负数(在有符号整数的情况下)。为了表示整数正 - 添加零 (0) 前导八位字节。一般情况下。

这是一篇关于整数编码的好文章:http: //msdn.microsoft.com/en-us/library/windows/desktop/bb540806 (v=vs.85).aspx

于 2014-09-02T15:27:07.310 回答
0

编码是 2 的补码。您需要一个 0000 0000 的前导八位组。请注意,这不会违反您引用的规则,因为第二个八位组的第 8 位将为 1。

于 2014-09-02T14:55:43.240 回答