1

这应该是一门低级的课程,而且只是第三天的课。但是,我们被要求“以十六进制、二进制和八进制表示法编写以 null 结尾的字符串 'R5'。假设使用 ASCII 码”

我不知道去哪里学习如何做到这一点。有什么建议么?谢谢。

4

3 回答 3

1

看起来这只需要您从 ASCII 表中查找适当的条目,该表在大多数情况下会列出十六进制和八进制以及字符本身。

ASCII 是定义字符表示方式的标准方式,大多数表格将根据相应的十六进制、十进制和八进制值列出字符。前 128 个是标准字符,接下来的 128 个是扩展字符(那些不映射到英文键盘的奇怪字符)。

如果你用谷歌搜索“ASCII 表”,你会被不同的链接所淹没。我在 www.asciitable.com 上看到的最上面的那个似乎有你需要的一切——除了二进制。

大多数情况下,您不会看到二进制列表,但是将十六进制值转换为二进制是相当学术的 - 您的 Windows 计算器会很乐意为您完成此操作。

为了更直接地翻译您的特定字符串,您将分别查找每个字符(包括 NULL)并单独翻译每个字符。

于 2013-01-21T22:10:48.067 回答
1

以 NULL 结尾的 ASCII 字符串存储为每个字符一个字节,加上一个字节用于 NULL。因此,您将打印三个字节 - 'R'、'5' 和 0。

在ASCII 图表上查找“R”和“5”以查看 ASCII 中这些字符的数值。然后,用三种不同的方式写出你的三个字节——十六进制、二进制和八进制各一种。

希望有帮助。

于 2013-01-21T22:06:49.463 回答
0

最终对电脑来说,一切都是数字。为了表示字母或符号等字符,我们可以就这些字符的编码或编号达成一致。例如,我们可以发明一种新的编码,其中 1 表示“A”,2 表示“B”,依此类推。ASCII 是一种常用的文本编码,它将字符映射到数字。在这种情况下,我们关心一个由 3 个字符组成的字符串'R' ,'5'null(数值为、和。82530

String: R, 5, <null>
Decimal numbers: 82, 53, 0

我们的正常数字系统是以 10 为底,或十进制。这意味着每个数字代表的值是下一个数字的十倍(1、10、100、1000 等)。备用碱基包括 8(八进制)、16(十六进制)和 2(二进制)。有一种在基数之间进行转换的简单方法,尽管您也可以轻松找到可以为您进行转换的计算器。您可能需要查看教科书的相关部分,或查看 Wikipedia 文章。对于十进制 82 的示例,十六进制值为 52(这意味着 5*16 + 2 = 8*10 + 2)。通常您会看到前缀“0x”,这通常用于明确以下数字是以 16 为基数的。(否则,您可能会认为“52”指的是十进制值 52)。


有趣的。那么说以空字符结尾的字符串“R5”只是“52,35,30”是正确的,还是有更正确的格式?感谢您的耐心等待。——</p>

正如我在另一条评论中指出的那样,实际0 标志着字符串的结尾,而不是值 0x30,它表示字符串中的字符“0”。请注意,0无论您的数字在哪个基数中,零 ( ) 的值都是相同的。

String: R, 5, <null>
Decimal : 82, 53, 0
Hexadecimal: 52, 35, 0
于 2013-01-21T22:13:23.847 回答