C言語で書いてみました

過去の情報処理技術者試験の出題をもとにして、Cのソースを起こしてみました。

■ 2の補数(平成15年春午前問1)

#include <stdio.h>

/* ソフトウェア開発 平成15年度春問1 */
/* 2 の補数 */

int main()
{
    char BIT[8] = { 0, 0, 0, 1, 0, 1, 0, 1 }; /* 下位桁から順に */
    int i, SW = 0;

    for (i = 7; i >= 0; i--) printf("%d", BIT[i]);
    printf(" -> ");

    for (i = 0; i < 8; i++) {
        if (BIT[i] == 1) {
            if (SW != 0) BIT[i] = 0; else SW = 1;
        } else {
            if (SW != 0) BIT[i] = 1;
        }
    }

    for (i = 7; i >= 0; i--) printf("%d", BIT[i]);
    putchar('\n');

    return 0;
}