iT邦幫忙

2022 iThome 鐵人賽

DAY 6
0

每日閒聊

今天才加上昨天沒說完的部分,但說實在的著個部分對大多數人絕對不會有前面幾個運算那麼容易理解,建議好好咀嚼這裡的內容喔!有任何問題,歡迎隨時提問

運算補充

位元邏輯運算子 => "&", "|", "^", "~"

a = 52, b = 15

a & b:

(00110100)2 = (52)10
(00001111)2 = (15)10
(00000100)2 = (4)10

a | b:

(00110100)2 = (52)10
(00001111)2 = (15)10
(00111111)2 = (63)10

a ^ b:

(00110100)2 = (52)10
(00001111)2 = (15)10
(00111011)2 = (59)10

~a:

(00110100)2 = (52)10
(11001011)2 = (-53)10

移位運算子 => "<<", ">>", ">>>", "<<=", ">>=", ">>>="

移位運算子會把二進位的數項左或向右做位移
"<<":有正負號位元左移,右邊補上0
">>":有正負號位元右移,左邊補上原來左邊的位元
">>>":無號數位元右移,左邊補上0
"<<=":左移後補上指定內容
語法:

// 右移:數值 >> 移動的位元數
// 左移:數值 << 移動的位元數
a = 16;  // 00010000
a << 1;  // 00100000 = 32
a = 16;
a << 2;  // 01000000 = 64
a = 16;
a >> 2;  // 00000100 = 4
a = -8;  // 11111000
a >> 2;  // 11111110 = -2

運算子優先順序

  1. ()、[]、++(後置)、--(後置)
  2. !(非)、+(正)、-(負)、~、++(遞增)、--(遞減)、++(前置)、--(前置)
  3. *、/、%
  4. +、-
  5. <<、>>
  6. <、<=(關係運算子)
  7. ==、!=
  8. &(位元邏輯運算子)
  9. ^
  10. |
  11. &&
  12. ||
  13. =、+=...(複合指定運算子)

資料型別轉換

在運算中,需要把運算元的資料型別轉換成相同的才可以運算
資料型別轉換分為自動強制資料型別轉換

資料型別自動轉換

發生條件:

  1. 資料型別相容:要是同一類的資料型別,像是整數和浮點數都是數值資料型別
  2. 目的資料型別的儲存範圍,必須大於轉換前的型別:像是小箱子可以放進大箱子,但是大箱子不能塞進小箱子一樣,所以4位元的int數值可以轉成8位元long數值,8位元的long數值不能轉成4位元int數值
int a = 5;          // a 為int 
double b = a * 0.5  // a 會先自動轉換成double再運算

資料型別強制轉換

有時會需要把較大的資料轉換成較小的資料,就會用到強制轉換

用法:(要轉換的資料型別)變數或數值

long num = 2114655066;
byte num = (byte)250;

輸入與輸出

輸入

如果需要輸入資料在最上面要寫

import java.util.*;

之後在我們要寫的程式碼區塊加上

Scanner 物件名 = new Scanner(System.in);
int test = 物件名.nest();

就可以在我們的控制台輸入我們資料

輸出

格式化輸出格式

System.out.printf(“列印文字與格式”, 變數_1, 變數_2, …);
https://ithelp.ithome.com.tw/upload/images/20220921/20137192rTVDe2kceg.png


上一篇
Day5: Java基本運算
下一篇
Day7: Java的因果輪迴--控制敘述
系列文
大學耍廢的我要學Java翻身30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言