【问题标题】:bits and bytes and what form are them位和字节,它们是什么形式
【发布时间】:2016-05-11 02:08:40
【问题描述】:

尽管我一直在互联网上搜索,但我仍然对位和字节感到困惑。那是ASCII的一个字符= 1字节= 8位吗?那么 8 位有 256 个独特的模式,覆盖了所有的 ASCII 码,它在我们的计算机中存储的形式是什么?

如果我输入“Hello”,这是否意味着这包含 5 个字节?

【问题讨论】:

    标签: byte ascii bits


    【解决方案1】:

    是的,你写的一切。 “位”是二进制数字:0 或 1。历史上存在较小尺寸的字节;现在“字节”只意味着“8 位信息”,或 0 到 255 之间的数字。

    【讨论】:

    • 我们计算机中存储的比特的形式如何?它需要多少存储空间?
    • 一位信息占用一位存储空间。不知道该怎么回答。在 RAM 中,位是一个可以满或不满的电容器。在硬盘驱动器中,它是一小块磁铁,其南北方向发生了变化。在 CD 中,它是表面上的小烧伤,或者没有。
    • 感谢您的解释,尽管我对下面的另一种解释感到困惑。今天有一个美好的一天! :)
    • @TomBlodget 对 ASCII 和字节之间的关系的解释比我的更详尽和准确。
    • 哦,我明白了,我尽可能地消化它。谢谢!
    【解决方案2】:

    没有。 ASCII 是一个包含 128 个代码点的字符集,存储为值 0-127。现代计算机主要寻址 8 位内存和磁盘位置,因此 7 位 ASCII 值占用 8 位。

    没有文本,只有编码文本。编码将字符集的成员映射到一个或多个字节。除非您绝对知道您使用的是 ASCII,否则您可能不会。有不少字符集的编码涵盖所有 256 字节值,并使用字节值的任意组合对字符串进行编码。 有几个字符集相似但少于 256 个字符。以及其他使用多个字节来编码代码点并且不使用字节值的所有组合的其他方法。

    您知道,Unicode 是主要的字符集,除非在非常特殊的情况下。它有几种编码。 UTF-8 通常用于存储和流。 UTF-16 经常在内存中使用,特别是在 Java、.NET、JavaScript、XML 等中。当文本在系统之间进行通信时,必须有关于它使用哪种字符集和编码的协议、规范、标准或指示,以便可以将字节序列解释为字符。

    更令人困惑的是,编程语言具有称为charCharacter 等的数据类型。您必须查看特定语言的参考手册才能了解它们的含义。例如,在 C 中,char 只是一个整数,它被定义为该 C 实现使用的字符编码的大小。 (C 也将此称为“字节”,它不一定是 8 位。在所有其他上下文中,人们说“字节”时的意思是 8 位。如果他们想要非常明确,他们可能会说“八位字节”。)

    “你好”是五个字符。在特定的字符集中,它是五个代码点。在该字符集的特定编码中,它可以是 5、10 或 20,或者 ???字节。

    此外,在特定语言的源代码中,这样的文字字符串可能是“以空值结尾的”。这意味着您可以说它是 6 个“字符”。其他语言可能会将字符串存储为经过计数的代码单元序列。同样,您必须查看语言参考才能了解字符串的底层数据结构。当然,如果使用的语言和库足够高级,您可能永远不需要了解这些内部结构。

    【讨论】:

    • 嗯,非常感谢。尽管我试图一遍又一遍地通读,但不知何故没有理解所有的内容。那么代码点与 ASCII 完全不同吗?我看到它是用于 unicode 的,例如 codepoint 中的 'a' 是 0061,但 ASCII 是 65。并且是 'encoding' 名词或动词,我了解到这意味着在 Google 上将某种形式转换为另一种形式。其余的对我来说还好。谢谢!
    • 一次只看“一点”。我的基本信息是,这些术语具有非常具体的含义,人们会因为阅读过多而犯错误。如果您有具体问题,我很乐意澄清我的回答。
    猜你喜欢
    • 2011-02-05
    • 2016-10-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2022-11-04
    • 1970-01-01
    相关资源
    最近更新 更多