乙個位元組範圍為00000000到11111111,就是記憶體中八位二進位製碼。範圍為-128到127,現在看乙個位元組碼所能代表的實際資訊:
-
128?
-127?-
126?
-125?-
124?
-123?-
122?
-121?-
120?
-119?-
118?
-117?-
116?
-115?-
114?
-113?-
112?
-111?-
110?
-109?-
108?
-107?-
106?
-105?-
104?
-103?-
102?
-101?-
100?-99
?-98?
-97?-
96?-95
?-94?
-93?-
92?-91
?-90?
-89?-
88?-87
?-86?
-85?-
84?-83
?-82?
-81?-
80?-79
?-78?
-77?-
76?-75
?-74?
-73?-
72?-71
?-70?
-69?-
68?-67
?-66?
-65?-
64?-63
?-62?
-61?-
60?-59
?-58?
-57?-
56?-55
?-54?
-53?-
52?-51
?-50?
-49?-
48?-47
?-46?
-45?-
44?-43
?-42?
-41?-
40?-39
?-38?
-37?-
36?-35
?-34?
-33?-
32¢ -
31£ -
30¬ -
29 ̄ -
28¦ -
27¥ -26?
-25?-
24?-23
?-22?
-21?-
20?-19
?-18?
-17?-
16?-15
?-14?
-13?-
12?-11
?-10?
-9?-
8?-7
?-6?
-5?-
4?-3
?-2?
-1?0
1234
5678
9101112
1314
1516
1718
1920
2122
2324
2526
2728
2930
313233!
34" 35# 36$ 37%38
&39' 40(41
)42*43
+44,45
-46.47/
480491
502513
524535
546557
56857958:
59;60<61=
62>63?
64@ 65a 66b 67c 68d
69e 70f
71g 72h 73i 74j 75k 76l 77m 78n 79o 80p
81q 82r 83s 84t 85u 86v 87w 88x 89y 90z 91
[92\ 93]94
^95_ 96` 97a 98b 99c 100d
101e 102f
103g 104h 105i 106j 107k 108l 109m 110n 111o 112p 113q 114r 115s 116t 117u 118v 119w 120x
121y 122z 123
126~
127
上表就是乙個位元組碼多代表的資訊,其中0~127這個範圍與asiic碼對應,比如10對應的就是退格。所以,如果直接進行運算的話,位元組首先會轉換成int型,將位元組轉換為asiic對應的數字。
char就是比如用單引號引起的都是字元,『a』,'2』等,也可以表示中文。
乙個字元佔兩個位元組,範圍為0~65535。
系統會按照一定的方式,將二進位制資訊對應成字元,這就是編碼。
比如』中』按照gbk編碼方式就佔兩個位元組,對應的數字為20013.
system.out.
println((
int)
'中')
;system.out.
println((
char
)20013
);
20013
中
字串就是由多個字元構成的,格式為」a「。
byte表徵儲存資訊,表示記憶體大小,字元和字串表徵的時候資訊,也是就是位元組經過解碼後顯示的內容。
字元占用位元組的個數是由編碼方式決定的,字串是由多個字元組成!
看下面的例子
public
static
void
testa()
catch
(ioexception e)
}
這個函式的作用就是複製檔案內容,檔案裡的內容是」你好「,編碼方式為utf-8,佔6個位元組,new string(bytes);這個函式會把utf-8編碼的資訊譯成gbk(系統預設,中文系統gbk,英文系統ios)所以輸出的結果就變成了」浣犲ソ「。
順便研究一下reader和writer的編碼方式。system…會把放在記憶體中的二進位製碼先拋掉以前的編碼方式的標記,然後按照系統編碼方式進行解碼輸出。
reader和writer函式進行的操作沒有改變記憶體中位元組本身所攜帶的編碼方式。所以在複製檔案的時候utf-8複製過去還是utf-8的檔案。
public
static
void
testa()
catch
(ioexception e)
}
String和string的區別
msdn中對string的說明 string is an alias for string in the net framework。string是string的別名而已,string是c 中的類,string是framework的類,c string 對映為 framework的 string。如...
String和string的區別
最近老看見有人在論壇上問string和string有什麼區別,答案五花八門差點兒沒讓我背過氣去,乾脆放到blog上來,論壇上就貼位址了 首先,在一般情況下,string和string是一樣的,但是他們也存在如下區別 1 string始終代表 system.string 1.x 或 system.st...
String和string的區別
msdn中對string的說明 string is an alias for string in the net framework。string是string的別名而已,string是c 中的類,string是framework的類,c string對映為framework的string。如果用s...