阿摩線上測驗 登入

申論題資訊

試卷:103年 - 103 專技高考_電子工程技師:電子計算機原理#43191
科目:計算機概論、大意(資訊科學概論,電腦常識,電子計算機概論)
年份:103年
排序:0

申論題內容

一、一般電腦硬體或者是程式語言中的運算有分為「算術運算」(Arithmetic Operation) 與「邏輯運算」(Logic Operation),請分別說明其不同之處?(10 分)請用 Pseudo code 寫出如何用「邏輯的移位」(Shift)運算與「算術的加法」運算模擬出 算術乘法 c = a × b。程式中並請注意加上註解(Comment)。(10 分)

詳解 (共 1 筆)

詳解 提供者:hchungw
 
# Function to multiply two integers a and b using bitwise shift and addition
def multiply(a, b):
    # Initialize result to 0
    result = 0
    # Iterate through each bit of b
    while b != 0:
        # If the least significant bit of b is 1, add a to the result
        if b & 1:
            result = result + a
        # Shift a left by 1 (equivalent to multiplying a by 2)
        a = a << 1
        # Shift b right by 1 (equivalent to dividing b by 2)
        b = b >> 1
    return result
# Example usage
a = 6  # First number
b = 7  # Second number
c = multiply(a, b)
print("The result of", a, "multiplied by", b, "is", c)

算術運算(Arithmetic Operation)與邏輯運算(Logic Operation)的不同

算術運算(Arithmetic Operation)

  • 定義:算術運算是對數值進行基本的數學操作,包括加法、減法、乘法和除法。
  • 用途:主要用於數值計算、數學公式計算、科學計算和處理數據的變換。
  • 示例
    • 加法(+):c = a + b
    • 減法(-):c = a - b
    • 乘法(*):c = a * b
    • 除法(/):c = a / b

邏輯運算(Logic Operation)

  • 定義:邏輯運算是基於布爾代數進行的操作,處理邏輯值(真和假,或1和0),包括與(AND)、或(OR)、非(NOT)和異或(XOR)等操作。
  • 用途:主要用於條件判斷、控制結構、位操作和數據處理中的邏輯判斷。
  • 示例
    • 與(AND):c = a AND b
    • 或(OR):c = a OR b
    • 非(NOT):c = NOT a
    • 異或(XOR):c = a XOR b

使用邏輯移位和算術加法模擬算術乘法

以下是用 Pseudo code 寫出的用「邏輯的移位」運算與「算術的加法」運算模擬出算術乘法的程式:

註解說明

  • result = 0:初始化結果變數 result 為0,用於累加計算結果。
  • while b != 0:循環遍歷 b 的每一位,直到 b 變為0。
  • if b & 1:檢查 b 的最低有效位(LSB)是否為1。如果是,則將 a 加到 result 中。
  • a = a << 1:將 a 左移一位,相當於將 a 乘以2。
  • b = b >> 1:將 b 右移一位,相當於將 b 除以2(丟棄最低有效位)。
  • return result:返回計算結果。

這段 Pseudo code 使用了邏輯移位操作和算術加法來模擬乘法運算。這種方法有效地利用了位操作的高效性,避免了直接使用乘法指令。