2013年7月6日土曜日

開発環境

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

その他参考書籍

演習 2-6.

コード

sample.c

#include <stdio.h>

unsigned setbits(unsigned, int, int, unsigned);

int main()
{
    /* 01010101 */
    char x = 0x55;
    /* 01100110 */
    char y =  0x66;
    /* 01011001 0x59 */
    char n = setbits(x, 4, 3, y);
    
    printf("%x %x %x\n", x, y, n);
    return 0;
}

unsigned setbits(unsigned x, int p, int n, unsigned y)
{
    return (x & ~(~(~0 << n) << (p + 1 - n))) |
           ((y & ~(~0 << n)) << (p + 1 - n));
}

入出力結果(Terminal)

$ ./a.out
55 66 59
$

0 コメント:

コメントを投稿