【问题标题】:What is the difference between 65 and the letter A in binary?65和二进制中的字母A有什么区别?
【发布时间】:2015-06-14 14:57:57
【问题描述】:

65和二进制中的字母A有什么区别,因为它们都代表相同的位级信息?

【问题讨论】:

  • 我猜你在问intchar有什么区别?例如 C 语言中的 int x = 65;char x = 'A';...?
  • 每一个都是对位序列01000001的不同解释,它不是固有整数65或ASCII字符A

标签: binary


【解决方案1】:

基本上,计算机只理解数字,而不是每个数字:它只理解二进制表示的数字,即。只能使用两种不同的状态来表示(例如,1 和 2、0V 和 5V、打开和关闭、真或假,)。

不幸的是,我们这些可怜的人并不真正喜欢阅读零和一...因此,我们创建了一些代码,以便像使用字符一样使用数字:其中一个称为 ASCII (美国信息交换标准代码),但也有其他一些代码,例如 Unicode。原理很简单:程序所要做的就是处理数字,任何 CPU 都做得很好,但是,当涉及到显示这些数据时,显示器将它们表示为真实的字符,例如' A'、'4'、'@',甚至是空格或换行符。

现在,只要您使用 ASCII,数字 65 将表示字母“A”。一切都是表示的问题:例如,二进制数 0bOOOO1111,十六进制数 0x0F,八进制数 017 和十进制数 15 都表示同一个数。字母 'A' 也是如此:将 ASCII 视为 base,但不要使用 base 2(二进制)、8(八进制)、10(十进制)或 16(十六进制)来显示数字,它的使用方式完全不同。

回答您的问题:ASCII 'A' is 十六进制 0x41 is 十进制 65 is 八进制 0101 is二进制 0b01000001.

【讨论】:

    【解决方案2】:

    每个字符都由一个数字表示。数字和字符之间的映射称为编码。许多编码使用数字 65 来表示字母 A。由于在内存中没有用于字符或数字的特殊单元格,因此它们的表示方式相同,但在任何程序中的解释可能会大不相同。

    【讨论】:

      【解决方案3】:

      首先,差异可能在于内存的大小(8 位、16 位或 32 位)。本题:bytes of a string in java

      其次,要存储字母“A”,您可以有不同的编码和不同的记忆解释。 C 中 'A' 的 ASCII 字符可以占用一个字节(7 位 + 一个未使用的符号位),并且它具有与 char 整数中的 65 完全相同的二进制值。但数字和字符的按位解释并不总是相同的。只需考虑您可以将带符号的值存储在 8 位中。本题:what is an unsigned char

      【讨论】:

        【解决方案4】:

        我可能误解了这个问题,如果是这样,我很抱歉弄错了

        但是,如果我是对的,我相信您会问 char 和 int 在值 65 的二进制表示中有什么区别,65 是字母 A 的 ascii 十进制值(大写形式)

        首先,我们需要了解在 ram 模块中保留内存块的数据类型

        如果是浮点数或长整数,则整数通常为 16 位或更多(在 c# 中,此声明是通过声明 uint16、int16 或 int32、uint32 等等来进行的)

        一个字符是一个 8 位的内存块

        因此二进制文件如下所示

        一个字节(8 位) - 字符 十进制:128、64、32、16、8、4、2、1 二进制:01000001

        2 字节(16 位)- int16 二进制; 0000000001000001

        这完全取决于根据变量声明中的数据类型保留的内存块的大小

        我已经完成了 2 位的十进制计算,但我现在在公共汽车上

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-02-14
          • 2016-05-17
          • 1970-01-01
          • 1970-01-01
          • 2013-06-25
          • 1970-01-01
          • 2016-10-11
          • 1970-01-01
          相关资源
          最近更新 更多