整數賦值
整數輸入時預設為int
bytea=1;yes
bytea=128;
no,超出byte範圍
int a=0b10101;
yes
int a=0xff;
yes
longa=123456789123;
no,超出int範圍
long a=123456789123;
yes
byte、short ------>賦值時如果int在其表示範圍內(即不影響精度)時無資料損失可直接賦值,否則強制型別轉換
int------->int直接賦值,小型別自動轉換,否則強制轉換
long------>輸入時為int,需要強制型別轉換才能成功輸入
浮點數賦值
浮點數輸入時預設格式為double
float a = 1 yes
float a = 1.1 no,double不能賦給float
float
a = 1.1l
yes
double a = 1.1 yes
浮點數與整數不同,其小數點後精度不同,即double不可能在float範圍內,也就是說必須使用強制型別轉換
輸入數值
輸入二進位制數
x=-0b1010101001
x=-0b1010101001
輸入八進位制數
x=-017
x=077
輸入十六進製制數
x=0x77
x=0x77
輸入二進位制數時輸入值為原碼,數字符號另加。
由於其不能帶符號位,所以位數最高為(型別大小-1)
運算 算數運算子:+
-
*
/ %
單目按位運算子:^ ~ | & << >> >>>
三目運算子: ? :
byte
a=2+2;
yse
數值 運算子 數值——>先將低階的轉化為高階的,算出來,然後當做乙個數參與其他運算
三目運算時,低階同樣轉化為高階
byte
a=2;
a=a+2; no
byte i=1,j=1;
i=i+j; no
變數 運算子 變數 先將低階的轉化為高階的,
然後進行運算,此時不支援範圍內自動轉化
或 ——>
數值 運算子 變數 整數運算低於int的轉為int,然後進行運算,其餘在自己的模式下進行
三目運算時,
低階同樣轉化為高階,但
支援範圍內自動轉化
另:& | ^三個同樣可以用於邏輯運算中
賦值運算子: += -= *= /= %=
byte a =1;
a+=2+2;
這種運算子自帶強制轉化功能,即a=(byte)(
a+(2+2));
等號後面的自帶公升級效果,先算再與原數相運算
單目運算子:++ -- - (型別)
自己加一 減一 負號 強制轉換 取位址 指標
其他注意事項 1
、三目運算子
結合順序從右邊到左邊
(1>2?1:3>4?5:6;--->1>2?1:(3>4?5:6);)。
其本身為普通運算子
(相當於+)
,所以必須有乙個存在價值,比如作為返回值或賦值號右邊。
優先順序僅僅大於賦值符號,
(2+(1>2)?1:2--->2+(1>2)?1:2,此時問號前不為boolean)
2、運算子優先順序由高到低
()(小括號)
>
單目運算子 取非、按位取反
(從右向左)(++ -- - (型別)!~)>
算數運算子(從左向右)(+ - * / %)
>
按位移動運算子(從右向左)( << >> >>> )
>
關係運算子(< > >= <= == !=)
>
按位的與、異或、或(& ^ |)
>
邏輯的與、異或、或(&& &、 ^ || |)
>
三目運算子(從右向左)(?:)
>
賦值運算子
(從左向右)(+= -= *= /= %=)
賦值運算與深淺copy
1 複製運算 l1 1,2,3,a b l2 l1 l1 0 111 print l1 111,2,3,a b print l2 111,2,3,a b l1 3 0 hello print l1 111,2,3,hello b print l2 111,2,3,hello b 所以,對於賦值運算來...
賦值與條件運算子
賦值 begin a 1 b 2 3 a 1 b 5 a b b a a 5 b 1 a b 1 2 3 a 6 b 6 a b 1 2 3 a 6 b 3 x 0 x 0 a,b,c x,x 1 x 2 a 0 b 1,c 2 end 條件運算子 begin 比較兩個物件的值是否相等 a 1 b ...
PHP賦值運算
1.賦值運算 意思是右邊表示式的值賦給左邊的運算數。int1 10 int1 int1 6 int1 4 echo int1,int3 int2 int1 4 右向左,最後 int3 8 echo int2,echo int3,int3 int2 int1 4 先對 進行運算,再右向左,最後 int...