家庭作業彙總

2022-09-04 11:21:07 字數 1268 閱讀 9711

家庭作業:

2.65 寫出**實現如下函式:

/return 1 when x contains an even number of 1s; 0 otherwise. assume w=32/

int even_ones(unsigned x);

函式應該遵循位級整數編碼規則,不過你可以假設資料型別int有w=32位,你的**最多只能包含12個算術運算、位運算和邏輯運算。

解讀題目:當無符號數x包含偶數個1時,返回值為1,否則為返回值為0,假設x的資料型別是int 有w=32位。

解題思路:要求x所包含的1的個數,可以對x的每個位進行異或運算。如果得到的結果是0,那麼就說明x包含偶數個1,則返回值為1,;如果得到的結果是1,那麼說明x包含奇數個1,則返回值為0。

**編寫過程:由於x是個32位int型別數,所以①首先採用折半縮小規模的方法進行逐位異或。②最後得到的x值再與1進行與運算就會得到乙個32位中前31均為0,尾數是0或者是1(用於判斷是原x包含奇數還是偶數個1),③返回這個值就完成了題目需求。

**編寫:

int even_ones(unsigned x)

p++, q++;

}根據c語言的內迴圈結構,可以進行改寫成以下的內迴圈彙編**:

innerloop內改成:(edx迴圈利用)

movl (%ecx), %edx

innerloop:

movl %edx, %eax //將%edx儲存的值賦給%eax

movl 4(%ecx), %ebx

subl %ebx, %eax //比較%ebx所儲存的指標p的值與%eax中所儲存的(p+1)的值,相當於c語句的條件表示式中的p>(p+1)?(p<(p+1))

貪心 家庭作業

題目描述 老師在開學第一天就把所有作業都布置了,每個作業如果在規定的時間內交上來的話才有學分。每個作業的截止日期和學分可能是不同的。例如如果乙個作業學分為10,要求在6天內交,那麼要想拿到這10學分,就必須在第6天結束前交。每個作業的完成時間都是只有一天。例如,假設有7次作業的學分和完成時間如下 老...

家庭作業 Standard IO

description 老師在開學第一天就把所有作業都布置了,每個作業如果在規定的時間內交上來的話才有學分。每個作業的截止日期和學分可能是不同的。例如如果乙個作業學分為10,要求在6天內交,那麼要想拿到這10學分,就必須在第6天結束前交。每個作業的完成時間都是只有一天。例如,假設有7次作業的學分和完...

家庭作業 題解 C

家庭作業 老師在開學第一天就把所有作業都布置了,每個作業如果在規定的時間內交上來的話才有學分。每個作業的截止日期和學分可能是不同的。例如如果乙個作業學分為 10,要求在 6 天內交,那麼要想拿到這 10 學分,就必須在第 6 天結束前交。每個作業的完成時間都是只有一天。例如,假設有 7 次作業的學分...