2015-06-14 952 views

回答

0

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

0

首先,差异可以是内存大小(8位,16位或32位)。这个问题:bytes of a string in java

其次,要存储字母'A',你可以有不同的编码和不同的内存解释。 C中的'A'的ASCII字符可以占据精确的一个字节(7位+一个未使用的符号位),并且它具有与char整数中的65完全相同的二进制值。但是,数字和字符的按位解释并不总是相同的。只要考虑到你可以存储8位的有符号值。这个问题:what is an unsigned char

0

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

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

现在,只要您使用ASCII,数字65将代表字母'A'。全部是表示的问题:例如,二进制数字0bOOOO1111,十六进制数字0x0F,八进制数字017和十进制数字15都表示相同的数字。对于字母'A'也是如此:将ASCII认为是基数,但不是使用基数2(二进制),8(八进制),10(十进制)或16(十六进制)来显示数字,而是使用ASCII以完全不同的方式。

要回答你的问题:ASCII 'A' 十六进制的0x41 十进制65 八进制0101 二进制0b01000001。

相关问题