class
demo
}
那麼:
一般來說,我們在運算的時候,要求參與運算的資料型別必須一致。
而對於不同的資料型別之間的運算,會有一種預設的轉換
預設轉換(從小到大的轉換):
byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;
哪句是編譯失敗的呢?為什麼呢?
從大的資料型別到小的資料型別。因此出錯的是class
demo2
}
b=b1+b2;
目標資料型別 變數 = (目標資料型別) (被轉換的資料);
class
demo2
}
注意:
不要隨意的去使用強制轉換,因為它隱含了精度損失問題。
看看下面兩個定義有沒有區別呢?
class
demo3
}
byte b = 130;
有沒有問題?如果我想讓賦值正確,可以怎麼做?結果是多少呢?
/*
byte b = 130;有沒有問題?如果我想讓賦值正確,可以怎麼做?結果是多少呢?
*/class
demo4
}
為何會是這樣乙個結果?請看分析:
分析過程:
我們要想知道結果是什麼,就應該知道是如何進行計算的。
而我們又知道計算機中資料的運算都是補碼進行的。(值是以原始碼進行顯示的)
而要得到補碼,首先要計算出資料的二進位制。
a:獲取130這個資料的二進位制。
00000000 00000000 00000000 10000010
這是130的原碼,也是反碼,還是補碼。
b:做擷取操作,截成byte型別的了。
10000010
這個結果是補碼。
c:已知補碼求原碼。
符號位 數值位
補碼: 1 0000010
反碼: 1 0000001
原碼: 1 1111110 -> -126
class
demo5
}
通過字元和乙個整數相加,會按照字元編碼,ascii碼進行計算
我們給出一張表:ascii碼表
ascii碼
鍵盤ascii 碼
鍵盤ascii 碼
鍵盤ascii 碼
鍵盤27
esc32
space33!
34"35#
36$37%
38&39』
40(41)
42*43+
44』45-
46.47/
480491
502513
524535
546557
568579
58:59;
60<61=
62>63?
64@65a
66b67c
68d69e
70f71g
72h73i
74j75k
76l77m
78n79o
80p81q
82r83s
84t85u
86v87w
88x89y
90z91[
92\93]
94^95_
96`97a
98b99c
100d
101e
102f
103g
104h
105i
106j
107k
108l
109m
110n
111o
112p
113q
114r
115s
116t
117u
118v
119w
120x
121y
122z
123126
~
通過看完這張表以後,我們要記住三個值:『a』 97
『a』 65
『0』 48
class
demo6
}
字串資料和其他資料做+,結果是字串型別。
這裡的+不是加法運算,而是字串連線符。
運算子與資料型別轉換
小白個人筆記 如有錯誤,請指正。1.算術運算子 一般來說就是加 減 乘 除 取餘 一般用於number型別的數字運算。注意 當 兩邊有乙個為spring型別,則執行拼接操作。例如 這裡c的值為100100 而不是200。算術運算子裡有一元運算子。或者 意思是自身 1或者 1。運算子前置後置對於變數本...
php資料型別轉換運算
php的資料型別轉換屬於強制轉換,允許轉換的php資料型別有 int integer 轉換成整形 float double real 轉換成浮點型 string 轉換成字串 bool boolean 轉換成布林型別 array 轉換成陣列 object 轉換成物件 php資料型別有三種轉換方式 在要...
資料型別與轉換
1.set 集合 特點 無序,自動去重,不可修改 無序導致無法定位修改的資料 定義語法 setvar 2.dict 字典 特點 無序,可獲取 通過定位鍵修改對應的值 定義語法 dictvar 3.字典的鍵 和 集合的值的資料型別要求 必須為不可變資料 可雜湊的資料型別 即number int,flo...