97年地特計算機概要 - 考試

Table of Contents


版上高手好~

我想請教97年地特的計概的第36題

題目如下,答案是D

http://wwwc.moex.gov.tw/ExamQuesFiles/Question/097/038000c60.pdf

36. 下列以 C 程式語言撰寫之程式執行後產生之輸出為何?
#include <stdio.h>
main(){
int x = 3, y = 1; printf(“%d\n”, x >> 1 | y << 1 );
}
(A)0 (B)1 (C)2 (D)3

我看坊間的解答
寫x>>1為1,y<<1為2
01 or 10 為 11,即3

但我不懂為何x>>1為1,y<<1為2 ??

可否請版上高手教我一下,謝謝您們~~



--

All Comments

Isabella avatarIsabella2013-05-23
不就右移跟左移嗎
Edwina avatarEdwina2013-05-24
X=3(011)右移一位變1(001);y=1(001)左移一位變2
Edith avatarEdith2013-05-26
謝謝樓上二位講解!
Agnes avatarAgnes2013-05-27
左移右移 bj4