“十个ASCII”是什么意思?

时间:2014-05-17 23:57:12

标签: ascii

也许我在使用谷歌时做得很糟糕,但Bencoding的这些规范仍然指的是"基础十进制数字#34;这让我想到了#" 39; s与常规ASCII不同。有人可以解释一下吗?

5 个答案:

答案 0 :(得分:7)

明确声明base是为了避免混淆(尽管有人可能会认为默认情况下基数为10)。

考虑一下:给出" 12"的文本表示。 (在ASCII中),数值是什么?

  • 如果它是基数-10,那将是1 * 10 + 2 - > 12。
  • 如果它是基础-8(oct),则它将是1 * 8 + 2 - > 10。
  • 如果它是基数为16(十六进制),则为1 * 16 + 2 - > 18。

然而,在Bencode中,它的总是基数为10,所以42(整数)被编码为" i42e"。


在base-10上使用base-16可能是为了在较长的ASCII编码数字中保存一个字节,或者为了确保一致的pad大小。但是 base-10更适合如何通常编写数字并使Bencoded文件更易于访问。 (也就是说,Bencoded文件通常不是"人类编辑"。)

答案 1 :(得分:1)

" Base 10 ASCII,"在这种情况下使用,不是一回事。它只是意味着使用ASCII字符表示基数为10的数字。

答案 2 :(得分:1)

与二元相反?看起来数字5显示在其基数为10的表单5中,而不是二进制版本101

答案 3 :(得分:0)

integer encoded in base ten ASCII

这意味着像你这样的数字,例如1,9,11,123。ASCII是http://en.wikipedia.org/wiki/ASCII#ASCII_control_code_chart

你在12月专栏中查看

以10为基数编码表示数字,ASCII表示数字的字母表示,以便于在文本编辑器中阅读

答案 4 :(得分:0)

Base 10 ASCII表示你在基数10中写出字符的ASCII码,而不是16号。

因此,A将被写为65.空格字符将被写为32. m将被写为109.

这与(例如)URL编码的ASCII(基数为16)形成对比。在URL编码中,%41为A,%20为空格,%6D为m。