阿摩線上測驗 登入

申論題資訊

試卷:96年 - 096年地方資訊處理(四等)#32438
科目:程式設計
年份:96年
排序:0

申論題內容

二、請設計程式求一個 1-byte(8-bit)的正整數 N 的二進位之互補數(complement)。 (互補:把 0 變 1、1 變 0)。(25 分)

詳解 (共 2 筆)

詳解 提供者:hchungw

要計算一個1-byte(8-bit)正整數的二進制互補數,你可以簡單地將該數字與一個所有位都為1的8位數字進行XOR操作。在8位二進制中,一個所有位都為1的數字等於255(或二進制的11111111)。
以下是用C語言寫的一個示例程序,這個程序讀取一個正整數N(假設已經確保N在1-byte範圍內),然後計算並輸出其二進制互補數:

#include <stdio.h>
int main() {
    unsigned char N; // 用unsigned char確保是1-byte正整數
    printf("請輸入一個1-byte的正整數(0-255): ");
    scanf("%hhu", &N); // %hhu用於讀取unsigned char
    // 計算N的二進制互補數
    unsigned char complement = ~N; // 使用按位取反運算符~
    printf("數字 %u 的二進制互補數是: %u\n", N, complement);
    return 0;
}
在這個程序中,~N操作將N中的每一位進行反轉(即0變成1,1變成0),從而得到其二進制互補數。這裡使用unsigned char類型來確保處理的數據大小為1-byte,並且是正整數。此程序假設用戶輸入的數值在0到255之間,這是1-byte能夠表示的範圍。
詳解 提供者:劉竑礽
我不會 想看有沒有人會可以教我!!