【问题标题】:ASCII table and character presentationASCII 表和字符表示
【发布时间】:2018-07-07 05:20:30
【问题描述】:

我们在课堂上学习 ASCII 表,128 个字符中的每个字符都有一个从 0 到 128 的唯一数字来表示它。 例如“a”是 97(二进制 97 是 1100001)。 “%”是 37(二进制 37 是 0100101)。 (我知道对于固定长度 7 我们应该允许二进制数以 0 开头)

如果 97 代表“a”,那么字符串“97”代表什么?整数97代表什么?

【问题讨论】:

    标签: binary ascii bit data-representation bit-representation


    【解决方案1】:

    我认为您的问题是基于这样的概念,即给定整数、字符串或其他类型的值的表示形式,您可以确定类型和值。你不能。

    在大多数数字计算机体系结构中,数据是位,以连续的 8 位字节访问。您可以取一个字节,将其视为一个非负整数,并以二进制、八进制、十进制、十六进制……来表示它。当一个位本身表示一个值时,使用二进制。十六进制是首选,因为它紧凑且易于转换为二进制。当整个字节对人类有一些基数值时,使用十进制,这使其成为负整数的选择。

    那么,给定字节 97(十进制),比如来自 1 字节文件或内存地址,类型和值是什么?唯一知道的方法是通过某种共同的理解:协议、声明、约定、规范、数据映射等。换句话说,通信。完整的通信由数据和伴随的或单独的元数据组成,这些元数据指示如何解释字节。

    97₁₀ = 61₁₆ = 01100001₂ 可能是:

    • 作为 8 位无符号整数:97₁₀
    • 作为 8 位二进制补码有符号整数:97₁₀
    • 作为 UTF-8 代码单元:恰好是 Unicode 代码点的所有代码单元:'a'(U+0061) 'LATIN SMALL LETTER A'
    • 作为 ASCII 代码单元:(所有 ASCII 代码点采用一个 8 位代码单元):'a'
    • 作为 ISO 8859-1 代码单元:(所有 ISO 8859-1 代码点采用一个 8 位代码单元):'a'
    • 任何东西都可以打包成 8 位。

    因此,将您的问题改写为:表示“a”的 97 和表示整数 97 的 97 有什么区别?答案在于元数据,而不是字节。

    【讨论】:

      【解决方案2】:

      好吧,字符串“97”由两个字符组成,因此需要两个 ascii 代码,一个用于“9”,另一个用于“7”。

      所以答案是 57 和 55

      【讨论】:

      • 感谢您的快速回答!所以你的意思是字符串“97”由二进制数表示:01110010110111(只是将 57 的二进制表示写入 55 的二进制表示的左侧)但是,整数 7351 呢?二进制表示为相同的 01110010110111。计算机怎么知道我指的是哪一个?
      • 要记住的是,当您在字符串中存储数字或任何其他字符时,字符串只是一系列字符。 “7351”字符串将由 55 51 53 49 的十进制 ascii 代码表示。试试这个链接unit-conversion/ascii
      • @erangal Computer 不在乎。你告诉它该怎么做。计算机只处理数字并随心所欲地处理它们。
      • @dbl4k 那么将 97 存储为整数时呢?计算机将其存储为 1100001 但类型为整数?
      • 存储为整数类型与字符串不同,因为整数不存储为一系列字符。 97的值不会用ascii表示,但正如你所说,整个值可以用二进制值1100001表示。
      【解决方案3】:

      仅当我们使用char 或将任何unsigned int 值类型转换为char 时才返回ASCII 值。因此,根据您的问题,97 可以用 int 数据类型表示。但是如果你想要 97 作为字符,那么你应该编写以下代码:

      char c[2], i;
      c[0]=57;
      c[1]=55;
      for (i=0; i<2; i++) printf("%c", c[i]);
      

      【讨论】:

        猜你喜欢
        • 2010-09-11
        • 1970-01-01
        • 2010-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-28
        • 2013-09-22
        • 2011-06-12
        相关资源
        最近更新 更多