演習2-8 K&R プログラミング言語C

演習2-8

/*
 * x = 75, n = 3
 * 75  => 0100 1011
 * 105 => 0110 1001
 */

#include <stdio.h>
#include <limits.h>

unsigned char rightrot(unsigned char x, int n);

int main(int argc, char *argv[])
{
    unsigned x;
    int n;

    x = 75;
    n = 3;
    printf("x:%u\nn:%d\nresult:%u\n", x, n, rightrot(x, n));

    return 0;
}

unsigned char rightrot(unsigned char x, int n)
{
    return x >> n | x << ((sizeof(unsigned char) * CHAR_BIT) - n);
}

実行結果

$ ./ex2-8
x:75
n:3
result:105
プログラミング言語C 第2版 ANSI規格準拠
B.W. カーニハン D.M. リッチー
共立出版
売り上げランキング: 9726
«
»