阿摩線上測驗 登入

申論題資訊

試卷:104年 - 104 公務升官等考試_薦任_資訊處理:程式語言#41168
科目:程式語言
年份:104年
排序:0

題組內容

二、

申論題內容

⑶執行以下 Java 程式片段,輸出結果為何?(6 分)
int a = 10;
int b = 20;
System.out.println(a << 2);
System.out.println(b >> 2);
int c = a | b;
System.out.println(c);

詳解 (共 2 筆)

詳解 提供者:114年高考上榜

程式片段中,我們首先定義了兩個整數變數 a 和 b,分別賦值為 10 和 20。

 
接下來,我們使用位移運算符 << 和 >> 對變數 a 和 b 進行位移運算。其中,a << 2 表示將變數 a 的值左移 2 位,相當於將二進制數 1010 左移 2 位,得到二進制數 101000,轉換成十進制數為 40。因此,第一個 System.out.println(a << 2) 的輸出結果為 40。而 b >> 2 表示將變數 b 的值右移 2 位,相當於將二進制數 10100 右移 2 位,得到二進制數 101,轉換成十進制數為 5。因此,第二個 System.out.println(b >> 2) 的輸出結果為 5。
 
最後,我們使用位或運算符 | 對變數 a 和 b 進行位或運算。位或運算的結果是將兩個二進制數的對應位進行或運算,得到一個新的二進制數。在本例中,a 的二進制數為 1010,b 的二進制數為 10100,對應位進行或運算後得到二進制數 11110,轉換成十進制數為 30。因此,第三個 System.out.println(c) 的輸出結果為 30。
 
程式片段的輸出結果為:
 
 
40
5
30
詳解 提供者:hchungw
在這段 Java 程式片段中,我們使用了位操作運算符來對整數進行操作。讓我們逐步分析每個操作並確定輸出的結果。
java
複製程式碼
int a = 10;
int b = 20;
System.out.println(a << 2);
System.out.println(b >> 2);
int c = a | b;
System.out.println(c);
分析
位移操作:左移 <<
java
複製程式碼
System.out.println(a << 2);
a << 2 是將 a 的二進制表示左移 2 位。左移操作會將數字乘以 2 的次方。
a = 10 的二進制表示是 0000 1010
左移 2 位得到 0010 1000,這是十進制的 40
因此,System.out.println(a << 2); 的輸出是 40。
位移操作:右移 >>
java
複製程式碼
System.out.println(b >> 2);
b >> 2 是將 b 的二進制表示右移 2 位。右移操作會將數字除以 2 的次方,並取整數部分。
b = 20 的二進制表示是 0001 0100
右移 2 位得到 0000 0101,這是十進制的 5
因此,System.out.println(b >> 2); 的輸出是 5。
位或操作 |
java
複製程式碼
int c = a | b;
System.out.println(c);
a | b 是將 a 和 b 的二進制表示進行位或操作。位或操作會在每一位上執行 OR 操作,只要有一個位是 1,結果就是 1。
a = 10 的二進制表示是 0000 1010
b = 20 的二進制表示是 0001 0100
a | b 的結果是 0001 1110,這是十進制的 30
因此,System.out.println(c); 的輸出是 30。
總結
java
複製程式碼
int a = 10;
int b = 20;
System.out.println(a << 2);  // 輸出 40
System.out.println(b >> 2);  // 輸出 5
int c = a | b;
System.out.println(c);       // 輸出 30
最終答案
這段程式片段的輸出結果是:
複製程式碼
40
5
30