Java菜鳥逆襲之基礎語法下

2021-07-22 12:38:59 字數 2976 閱讀 5655

前提知識點2:原碼,反碼,補碼

 有符號資料表示法

• 在計算機內,有符號數有3種表示法:原碼、反碼和補碼。所有資料的運算都是採用補碼進行的。

• 原碼

• 就是二進位制定點表示法,即最高位為符號位,「0」表示正,「1」表示負,其餘位表示數值的大小。

• 反碼

• 正數的反碼與其原碼相同;負數的反碼是對其原碼逐位取反,但符號位除外。

• 補碼

• 正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。

左移運算:整數左移應該是先轉為二進位制,左邊移動相應位數,右邊補0,符號位不變。

-9>>2

-9的原碼:10000000 00000000 00000000 00001001

-9的反碼:11111111 11111111 11111111 11110110

-9的補碼:11111111 11111111 11111111 11110111

右移兩位:1111111111 11111111 11111111 111101

求回原碼: 1.。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。11—— -3

左移運算:數值a向左移動n位,得到的值是a*2的n次方。

右移運算:數值a向右移動n位,得到的值是a*2的-n次方。—-直接取到小於商的最大整數

移位規則規定:

/* 右移:

如果是有符號右移,首先看正數還是負數,對正數右移,高位補0,符號位也就是最高位不變;對負數右移,

* 需要先把負數的補碼表示出來,然後進行右移,高位補1,最高位不變,好了之後再進行求原碼。

* 如果是無符號右移,正數跟有符號右移一樣,負數需要先把補碼表示出來,然後進行右移,高位補0,然後直接

* 計算十進位制即可。

左移:對負數和整數進行左移都要保持最高位不變,右邊都補0.因為右邊不牽扯正負號問題。另外負數左移也需要先轉補碼。

* */

9<<2:

1. 先求出9的二進位制:

2. 對二進位制求補碼。

3. 移位運算,法則參考上面注釋的描述。

難點:對負數求右移操作

//求乙個負數的移位運算結果

int a=-9;

// 將a轉為二進位制,由於a為負數,所以最高位應該為1,1代表負號

// 原碼 10000000 00000000 000000000 00001001

// 負數在計算機裡面是以補碼的方式儲存的,原碼需要變成補碼,原碼求補碼,符號位不變

// 其他位取反然後加1,按照這個方式,補碼為:11111111 11111111 11111111 11110111

// 右移2位 最後兩位沒有了,前面補兩位1也就是負號。 11111111 1111111 11111111 11111101

// 補碼求原碼 ,計算方式跟原碼求補碼一樣:10………………..。11 結果就是-3

邏輯運算:

&&(邏輯與),||(邏輯或),!邏輯非(這三個運算子算出來的結果也只有兩個值:false,true)

邏輯與:只要有乙個為false,最後表示式結果false 乘法運算,false代表0,true代表1

邏輯或:有乙個為true,最後結果true 加法運算:false代表0,true代表1

邏輯運算短路現象:當整個表示式的值已經確定時候,後面的表示式部分不參與運算。

int a=9;

int b=8;

system.out.println(9>0||((a=a+1)==13));//右邊的式子不參與運算原因是左邊為true,在

//邏輯或裡面有一端為true,整個表示式就是true

system.out.println(a);//9

按位運算子

和邏輯運算相似,&代表與運算(乘法運算),|代表或運算(加法運算),^代表異或(相同為0,不同為1) ,~代表取相反。

按位與:&對0,1進行運算 有乙個為0,最後按位與的結果就是0,相當於乘法

按位或:|,有乙個為1,最後結果為1,相當於加法

按位非:~ 非0就是1,非1就是0

按位異或:^ 相同為0,不同為1

要進行位運算,首先要會轉二進位制:

整數轉二進位制,除以2取餘數,最後一直算到被除數小於2為止。最後將餘數倒著寫出來即可。

int a=9;

int b=8;

system.out.println(a&b);//8

system.out.println(a|b);//9

system.out.println(~b);//7

system.out.println(a^b);//1

自增自減運算子:

i++ (自加運算子) 整個表示式的值不變,但是i的值加了個1,先求值,再運算

i– 整個表示式的值不變,但是i的值減了個1,先賦值,再運算

++i 整個表示式的值加1,i的值加了個1—–先運算,再賦值

–i 整個表示式的值減1,i的值減了個1 —–先運算,再賦值

8.string字串初探

屬性+方法

雙引號裡面寫文字,連線多個字串及變數用+

構建字串變數有兩種方式:

1) string str=new string(「sssssssssssssss」);

2) string str=」ssssssssssssssssssss」

字串如果要進行拼接:str=str+」anoter string」;

string類裡面有哪些常用的功能?

1. 字串長度str.length()

2. str.charat(i) i 從0開始的。

9.鍵盤輸入

2.3.

4.

斗公尺奮鬥故事之 「菜鳥」銷售李哥的逆襲

在這個時代,只要你願意幹,你就會找到適合你的工作 而只要你肯努力,就能在打拼的城市立足,哪怕是你底子差薄 起步晚。今天,一站式招聘服務平台斗公尺,給大家帶來的是金章魚會員李哥的逆襲故事。起步雖晚,但銷售是草根逆襲最快捷徑 與很多選擇到大城市打拼的年輕人相比,今年 45 歲的李哥的起步顯然有點晚,因為...

Java語法基礎之語句

程式流程控制語句 分四類 a 判斷結構 if b 選擇結構 switch c 迴圈結構 do while while for d 其他流程控制語句 break continue 一 判斷結構 if 1 if語句三種格式 1,if 條件表示式 3,if 條件表示式 執行語句 執行語句 2,if 條件表...

Java語法基礎之for語句練習

控制語句 for練習 語句的巢狀應用 累加求和,計數器 迴圈巢狀 一 語句的巢狀應用 語句巢狀形式。其實就是語句中還有語句。形式多種多樣,沒有固定的格式和套路。1 列印偶數 for int x 1 x 10 x 二 累加求和,計數器 1 獲取1 10的和,並列印。思路 1,定義變數用於儲存不斷變化的...