【发布时间】:2015-06-14 14:57:57
【问题描述】:
65和二进制中的字母A有什么区别,因为它们都代表相同的位级信息?
【问题讨论】:
-
我猜你在问
int和char有什么区别?例如 C 语言中的int x = 65;和char x = 'A';...? -
每一个都是对位序列
01000001的不同解释,它不是固有整数65或ASCII字符A。
标签: binary
65和二进制中的字母A有什么区别,因为它们都代表相同的位级信息?
【问题讨论】:
int和char有什么区别?例如 C 语言中的 int x = 65; 和 char x = 'A';...?
01000001的不同解释,它不是固有整数65或ASCII字符A。
标签: binary
基本上,计算机只理解数字,而不是每个数字:它只理解二进制表示的数字,即。只能使用两种不同的状态来表示(例如,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.
【讨论】:
每个字符都由一个数字表示。数字和字符之间的映射称为编码。许多编码使用数字 65 来表示字母 A。由于在内存中没有用于字符或数字的特殊单元格,因此它们的表示方式相同,但在任何程序中的解释可能会大不相同。
【讨论】:
首先,差异可能在于内存的大小(8 位、16 位或 32 位)。本题:bytes of a string in java
其次,要存储字母“A”,您可以有不同的编码和不同的记忆解释。 C 中 'A' 的 ASCII 字符可以占用一个字节(7 位 + 一个未使用的符号位),并且它具有与 char 整数中的 65 完全相同的二进制值。但数字和字符的按位解释并不总是相同的。只需考虑您可以将带符号的值存储在 8 位中。本题:what is an unsigned char
【讨论】:
我可能误解了这个问题,如果是这样,我很抱歉弄错了
但是,如果我是对的,我相信您会问 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 位的十进制计算,但我现在在公共汽车上
【讨论】: