2015-06-14 364 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。

相關問題