2013年7月7日日曜日

開発環境

プログラミング言語C 第2版 ANSI規格準拠 (B.W. カーニハン D.M. リッチー (著)、 石田 晴久 (翻訳)、共立出版)の第2章(データ型・演算子・式)2.9(ビットごとの論理演算子)の演習2-7を解いてみる。

その他参考書籍

演習 2-7.

コード

sample.c

#include <stdio.h>

unsigned invert(unsigned, int, int);

int main()
{
    /* 01010101 */
    char x = 0x55;
    /* 01100110 */
    char y =  0x66;
    /* 01101001 0x69 */
    char n = invert(x, 5, 4);
    /* 01011010 0x5a */
    char m = invert(y, 5, 4);
    printf("%x %x %x %x\n", x, y, n, m);
    return 0;
}

unsigned invert(unsigned x, int p, int n)
{
    return x ^ (~(~0 << n) << (p + 1 - n));
}

入出力結果(Terminal)

$ ./a.out
55 66 69 5a
$

0 コメント:

コメントを投稿